119 lines
3.6 KiB
C++
119 lines
3.6 KiB
C++
#include "gtest/gtest.h"
|
|
#include "alibabacloud/core/Url.h"
|
|
|
|
using namespace std;
|
|
using namespace AlibabaCloud;
|
|
|
|
namespace {
|
|
TEST(UrlTest, assign) {
|
|
const string src = "abc://username:password@example.com:123/path/data?key=value&key2=value2#fragid1";
|
|
Url url;
|
|
url.setScheme("abc");
|
|
url.setUserName("username");
|
|
url.setPassword("password");
|
|
url.setHost("example.com");
|
|
url.setPath("/path/data");
|
|
url.setPort(123);
|
|
url.setQuery("key=value&key2=value2");
|
|
url.setFragment("fragid1");
|
|
EXPECT_TRUE(url.toString() == src);
|
|
|
|
EXPECT_TRUE(url.scheme() == "abc");
|
|
EXPECT_TRUE(url.userName() == "username");
|
|
EXPECT_TRUE(url.password() == "password");
|
|
EXPECT_TRUE(url.host() == "example.com");
|
|
EXPECT_TRUE(url.path() == "/path/data");
|
|
EXPECT_TRUE(url.port() == 123);
|
|
EXPECT_TRUE(url.query() == "key=value&key2=value2");
|
|
EXPECT_TRUE(url.fragment() == "fragid1");
|
|
|
|
url.clear();
|
|
EXPECT_TRUE(url.toString() == "");
|
|
EXPECT_TRUE(url.scheme() == "");
|
|
EXPECT_TRUE(url.userName() == "");
|
|
EXPECT_TRUE(url.password() == "");
|
|
EXPECT_TRUE(url.host() == "");
|
|
EXPECT_TRUE(url.path() == "");
|
|
EXPECT_TRUE(url.port() == -1);
|
|
EXPECT_TRUE(url.query() == "");
|
|
EXPECT_TRUE(url.fragment() == "");
|
|
|
|
url.fromString(src);
|
|
|
|
EXPECT_TRUE(url.scheme() == "abc");
|
|
EXPECT_TRUE(url.userName() == "username");
|
|
EXPECT_TRUE(url.password() == "password");
|
|
EXPECT_TRUE(url.host() == "example.com");
|
|
EXPECT_TRUE(url.path() == "/path/data");
|
|
EXPECT_TRUE(url.port() == 123);
|
|
EXPECT_TRUE(url.query() == "key=value&key2=value2");
|
|
EXPECT_TRUE(url.fragment() == "fragid1");
|
|
|
|
Url newurl = url;
|
|
EXPECT_TRUE(newurl.scheme() == "abc");
|
|
EXPECT_TRUE(newurl.userName() == "username");
|
|
EXPECT_TRUE(newurl.password() == "password");
|
|
EXPECT_TRUE(newurl.host() == "example.com");
|
|
EXPECT_TRUE(newurl.path() == "/path/data");
|
|
EXPECT_TRUE(newurl.port() == 123);
|
|
EXPECT_TRUE(newurl.query() == "key=value&key2=value2");
|
|
EXPECT_TRUE(newurl.fragment() == "fragid1");
|
|
}
|
|
|
|
TEST(UrlTest, from_string) {
|
|
const string src = "http://oss.example.com";
|
|
Url url(src);
|
|
EXPECT_TRUE(url.scheme() == "http");
|
|
EXPECT_TRUE(url.userName() == "");
|
|
EXPECT_TRUE(url.password() == "");
|
|
EXPECT_TRUE(url.host() == "oss.example.com");
|
|
EXPECT_TRUE(url.path() == "/");
|
|
EXPECT_TRUE(url.port() == -1);
|
|
EXPECT_TRUE(url.query() == "");
|
|
EXPECT_TRUE(url.fragment() == "");
|
|
}
|
|
|
|
TEST(UrlTest, abnormal) {
|
|
const string src = "http://oss.example.com";
|
|
Url url(src);
|
|
Url newurl = url;
|
|
newurl.setPort(12345);
|
|
EXPECT_TRUE(url.isEmpty() == false);
|
|
EXPECT_TRUE(url.isValid());
|
|
EXPECT_TRUE(newurl != url);
|
|
EXPECT_TRUE(newurl.port() == 12345);
|
|
}
|
|
|
|
TEST(UrlTest, abnormal_2) {
|
|
const string src = "";
|
|
Url empty_url;
|
|
empty_url.fromString(src);
|
|
EXPECT_TRUE(empty_url.isEmpty());
|
|
Url url(src);
|
|
Url newurl = url;
|
|
EXPECT_TRUE(url == newurl);
|
|
|
|
newurl.setPort(12345);
|
|
|
|
EXPECT_TRUE(url.isEmpty() == true);
|
|
EXPECT_TRUE(url.isValid() == false);
|
|
EXPECT_TRUE(url.authority() == "");
|
|
EXPECT_TRUE(newurl != url);
|
|
EXPECT_TRUE(newurl.port() == 12345);
|
|
newurl.setAuthority("");
|
|
EXPECT_TRUE(newurl.host() == "");
|
|
EXPECT_TRUE(newurl.port() == -1);
|
|
EXPECT_TRUE(newurl.userInfo() == "");
|
|
|
|
newurl.setScheme("");
|
|
EXPECT_TRUE(newurl.scheme() == "");
|
|
|
|
newurl.setUserInfo("userinfo");
|
|
EXPECT_TRUE(newurl.userName() == "userinfo");
|
|
|
|
newurl.setUserInfo("user:password");
|
|
EXPECT_TRUE(newurl.userName() == "user");
|
|
EXPECT_TRUE(newurl.password() == "password");
|
|
}
|
|
}
|