Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(92)

Unified Diff: chrome/test/chromedriver/chrome_impl_unittest.cc

Issue 12321057: [chromedriver] Implement reconnection to DevTools. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix nits. Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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\"}]");
}

Powered by Google App Engine
This is Rietveld 408576698