@@ -177,5 +177,53 @@ TEST_F(AccessKeyTest, GenerateRTMPSignatureUrlCredentialsProviderTest)
177177#endif
178178}
179179
180+ TEST_F (AccessKeyTest, EndpointTest)
181+ {
182+ ClientConfiguration conf;
183+ auto request = ListBucketsRequest ();
184+ request.setMaxKeys (1 );
185+
186+ auto endpoint = Config::Endpoint;
187+ auto client = std::make_shared<OssClient>(endpoint, Config::AccessKeyId, Config::AccessKeySecret, conf);
188+ auto outcome = client->ListBuckets (request);
189+ EXPECT_EQ (outcome.isSuccess (), true );
190+
191+ endpoint = " http://oss-cn-hangzhou.aliyuncs.com" ;
192+ client = std::make_shared<OssClient>(endpoint, Config::AccessKeyId, Config::AccessKeySecret, conf);
193+ outcome = client->ListBuckets (request);
194+ EXPECT_EQ (outcome.isSuccess (), true );
195+
196+ endpoint = " http://oss-cn-hangzhou.aliyuncs.com:80" ;
197+ client = std::make_shared<OssClient>(endpoint, Config::AccessKeyId, Config::AccessKeySecret, conf);
198+ outcome = client->ListBuckets (request);
199+ EXPECT_EQ (outcome.isSuccess (), true );
200+
201+ endpoint = " http://oss-cn-hangzhou.aliyuncs.com:80/?test=123" ;
202+ client = std::make_shared<OssClient>(endpoint, Config::AccessKeyId, Config::AccessKeySecret, conf);
203+ outcome = client->ListBuckets (request);
204+ EXPECT_EQ (outcome.isSuccess (), true );
205+
206+ endpoint = " www.test-inc.com\\ oss-cn-hangzhou.aliyuncs.com" ;
207+ client = std::make_shared<OssClient>(endpoint, Config::AccessKeyId, Config::AccessKeySecret, conf);
208+ outcome = client->ListBuckets (request);
209+ EXPECT_EQ (outcome.isSuccess (), false );
210+ EXPECT_EQ (outcome.error ().Code (), " ValidateError" );
211+ EXPECT_EQ (outcome.error ().Message (), " The endpoint is invalid." );
212+
213+ endpoint = " www.test-inc*test.com" ;
214+ client = std::make_shared<OssClient>(endpoint, Config::AccessKeyId, Config::AccessKeySecret, conf);
215+ outcome = client->ListBuckets (request);
216+ EXPECT_EQ (outcome.isSuccess (), false );
217+ EXPECT_EQ (outcome.error ().Code (), " ValidateError" );
218+ EXPECT_EQ (outcome.error ().Message (), " The endpoint is invalid." );
219+
220+ endpoint = " " ;
221+ client = std::make_shared<OssClient>(endpoint, Config::AccessKeyId, Config::AccessKeySecret, conf);
222+ outcome = client->ListBuckets (request);
223+ EXPECT_EQ (outcome.isSuccess (), false );
224+ EXPECT_EQ (outcome.error ().Code (), " ValidateError" );
225+ EXPECT_EQ (outcome.error ().Message (), " The endpoint is invalid." );
226+ }
227+
180228}
181229}
0 commit comments