| Index: chrome/test/chromedriver/chrome_impl_unittest.cc
|
| diff --git a/chrome/test/chromedriver/chrome_impl_unittest.cc b/chrome/test/chromedriver/chrome_impl_unittest.cc
|
| index 499279d72f71c2b56182d2d112aed47572d70811..d99bd0d89c72651054423e1d75a7a828c6fb62f4 100644
|
| --- a/chrome/test/chromedriver/chrome_impl_unittest.cc
|
| +++ b/chrome/test/chromedriver/chrome_impl_unittest.cc
|
| @@ -13,71 +13,118 @@
|
| #include "chrome/test/chromedriver/status.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| +namespace {
|
| +
|
| +typedef std::list<internal::WebViewInfo> WebViewInfoList;
|
| +
|
| +void ExpectEqual(const internal::WebViewInfo& info1,
|
| + const internal::WebViewInfo& info2) {
|
| + EXPECT_EQ(info1.id, info2.id);
|
| + EXPECT_EQ(info1.type, info2.type);
|
| + EXPECT_EQ(info1.url, info2.url);
|
| + EXPECT_EQ(info1.debugger_url, info2.debugger_url);
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| TEST(ParsePagesInfo, Normal) {
|
| - std::list<std::string> ids;
|
| + WebViewInfoList list;
|
| Status status = internal::ParsePagesInfo(
|
| - "[{\"type\": \"page\", \"id\":\"1\","
|
| - " \"webSocketDebuggerUrl\": \"http://debugurl\"}]",
|
| - &ids);
|
| + "[{\"type\": \"page\", \"id\": \"1\", \"url\": \"http://page1\","
|
| + " \"webSocketDebuggerUrl\": \"ws://debugurl1\"}]",
|
| + &list);
|
| ASSERT_TRUE(status.IsOk());
|
| - ASSERT_EQ(1u, ids.size());
|
| - ASSERT_EQ("1", ids.front());
|
| + ASSERT_EQ(1u, list.size());
|
| + ExpectEqual(
|
| + internal::WebViewInfo(
|
| + "1", "ws://debugurl1", "http://page1", internal::WebViewInfo::kPage),
|
| + list.front());
|
| }
|
|
|
| TEST(ParsePagesInfo, Multiple) {
|
| - std::list<std::string> ids;
|
| + WebViewInfoList list;
|
| Status status = internal::ParsePagesInfo(
|
| - "[{\"type\": \"page\", \"id\":\"1\","
|
| - " \"webSocketDebuggerUrl\": \"http://debugurl\"},"
|
| - " {\"type\": \"page\", \"id\":\"2\","
|
| - " \"webSocketDebuggerUrl\": \"http://debugurl2\"}]",
|
| - &ids);
|
| + "[{\"type\": \"page\", \"id\": \"1\", \"url\": \"http://page1\","
|
| + " \"webSocketDebuggerUrl\": \"ws://debugurl1\"},"
|
| + " {\"type\": \"other\", \"id\": \"2\", \"url\": \"http://page2\","
|
| + " \"webSocketDebuggerUrl\": \"ws://debugurl2\"}]",
|
| + &list);
|
| ASSERT_TRUE(status.IsOk());
|
| - ASSERT_EQ(2u, ids.size());
|
| - ASSERT_EQ("1", ids.front());
|
| - ASSERT_EQ("2", ids.back());
|
| + ASSERT_EQ(2u, list.size());
|
| + ExpectEqual(
|
| + internal::WebViewInfo(
|
| + "1", "ws://debugurl1", "http://page1", internal::WebViewInfo::kPage),
|
| + list.front());
|
| + ExpectEqual(
|
| + internal::WebViewInfo(
|
| + "2", "ws://debugurl2", "http://page2", internal::WebViewInfo::kOther),
|
| + list.back());
|
| }
|
|
|
| TEST(ParsePagesInfo, WithoutDebuggerUrl) {
|
| - std::list<std::string> ids;
|
| + WebViewInfoList list;
|
| Status status = internal::ParsePagesInfo(
|
| - "[{\"type\": \"page\", \"id\":\"1\","
|
| - " \"webSocketDebuggerUrl\": \"http://debugurl\"},"
|
| - " {\"type\": \"page\", \"id\":\"2\"}]",
|
| - &ids);
|
| + "[{\"type\": \"page\", \"id\": \"1\", \"url\": \"http://page1\"}]",
|
| + &list);
|
| ASSERT_TRUE(status.IsOk());
|
| - ASSERT_EQ(2u, ids.size());
|
| - ASSERT_EQ("1", ids.front());
|
| - ASSERT_EQ("2", ids.back());
|
| + ASSERT_EQ(1u, list.size());
|
| + ExpectEqual(
|
| + internal::WebViewInfo(
|
| + "1", "", "http://page1", internal::WebViewInfo::kPage),
|
| + list.front());
|
| }
|
|
|
| namespace {
|
|
|
| void AssertFails(const std::string& data) {
|
| - std::list<std::string> urls;
|
| - Status status = internal::ParsePagesInfo(data, &urls);
|
| + WebViewInfoList list;
|
| + Status status = internal::ParsePagesInfo(data, &list);
|
| ASSERT_FALSE(status.IsOk());
|
| - ASSERT_EQ(0u, urls.size());
|
| + ASSERT_EQ(0u, list.size());
|
| }
|
|
|
| } // namespace
|
|
|
| -TEST(ParsePagesInfo, InvalidJSON) {
|
| - AssertFails("[");
|
| -}
|
| -
|
| TEST(ParsePagesInfo, NonList) {
|
| - AssertFails("{}");
|
| + AssertFails("{\"id\": \"1\"}");
|
| }
|
|
|
| TEST(ParsePagesInfo, NonDictionary) {
|
| AssertFails("[1]");
|
| }
|
|
|
| -TEST(ParsePagesInfo, NoDebuggerUrl) {
|
| - AssertFails("[{\"hi\": 1}]");
|
| +TEST(ParsePagesInfo, NoId) {
|
| + AssertFails(
|
| + "[{\"type\": \"page\", \"url\": \"http://page1\","
|
| + " \"webSocketDebuggerUrl\": \"ws://debugurl1\"}]");
|
| +}
|
| +
|
| +TEST(ParsePagesInfo, InvalidId) {
|
| + AssertFails(
|
| + "[{\"type\": \"page\", \"id\": 1, \"url\": \"http://page1\","
|
| + " \"webSocketDebuggerUrl\": \"ws://debugurl1\"}]");
|
| +}
|
| +
|
| +TEST(ParsePagesInfo, NoType) {
|
| + AssertFails(
|
| + "[{\"id\": \"1\", \"url\": \"http://page1\","
|
| + " \"webSocketDebuggerUrl\": \"ws://debugurl1\"}]");
|
| +}
|
| +
|
| +TEST(ParsePagesInfo, InvalidType) {
|
| + AssertFails(
|
| + "[{\"type\": \"123\", \"id\": \"1\", \"url\": \"http://page1\","
|
| + " \"webSocketDebuggerUrl\": \"ws://debugurl1\"}]");
|
| +}
|
| +
|
| +TEST(ParsePagesInfo, NoUrl) {
|
| + AssertFails(
|
| + "[{\"type\": \"page\", \"id\": \"1\","
|
| + " \"webSocketDebuggerUrl\": \"ws://debugurl1\"}]");
|
| }
|
|
|
| -TEST(ParsePagesInfo, InvalidDebuggerUrl) {
|
| - AssertFails("[{\"webSocketDebuggerUrl\": 1}]");
|
| +TEST(ParsePagesInfo, InvalidUrl) {
|
| + AssertFails(
|
| + "[{\"type\": \"page\", \"id\": \"1\", \"url\": 1,"
|
| + " \"webSocketDebuggerUrl\": \"ws://debugurl1\"}]");
|
| }
|
|
|