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

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

Issue 11639019: [chromedriver] Implement SwitchToFrame command. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 11 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
« no previous file with comments | « chrome/test/chromedriver/chrome_impl.cc ('k') | chrome/test/chromedriver/chromedriver.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 6e039a34b37a73b2ccb57ef56cf8f6c7c9cdde3e..56bb884a1997dc4cdf3a40aa3b4fe0c77b836218 100644
--- a/chrome/test/chromedriver/chrome_impl_unittest.cc
+++ b/chrome/test/chromedriver/chrome_impl_unittest.cc
@@ -102,57 +102,83 @@ class FakeDevToolsClient : public DevToolsClient {
};
void AssertEvalFails(const base::DictionaryValue& command_result) {
- scoped_ptr<base::Value> result;
+ scoped_ptr<base::DictionaryValue> result;
FakeDevToolsClient client;
client.set_result(command_result);
- Status status = internal::EvaluateScript(&client, "", &result);
+ Status status = internal::EvaluateScript(&client, 0, "",
+ internal::ReturnByValue, &result);
ASSERT_EQ(kUnknownError, status.code());
ASSERT_FALSE(result);
}
} // namespace
-TEST(ChromeImplEvaluateScript, CommandError) {
- scoped_ptr<base::Value> result;
+TEST(EvaluateScript, CommandError) {
+ scoped_ptr<base::DictionaryValue> result;
FakeDevToolsClient client;
client.set_status(Status(kUnknownError));
- Status status = internal::EvaluateScript(&client, "", &result);
+ Status status = internal::EvaluateScript(&client, 0, "",
+ internal::ReturnByValue, &result);
ASSERT_EQ(kUnknownError, status.code());
ASSERT_FALSE(result);
}
-TEST(ChromeImplEvaluateScript, MissingResult) {
+TEST(EvaluateScript, MissingWasThrown) {
+ base::DictionaryValue dict;
+ ASSERT_NO_FATAL_FAILURE(AssertEvalFails(dict));
+}
+
+TEST(EvaluateScript, MissingResult) {
base::DictionaryValue dict;
+ dict.SetBoolean("wasThrown", false);
ASSERT_NO_FATAL_FAILURE(AssertEvalFails(dict));
}
-TEST(ChromeImplEvaluateScript, Throws) {
+TEST(EvaluateScript, Throws) {
base::DictionaryValue dict;
dict.SetBoolean("wasThrown", true);
dict.SetString("result.type", "undefined");
ASSERT_NO_FATAL_FAILURE(AssertEvalFails(dict));
}
-TEST(ChromeImplEvaluateScript, MissingType) {
+TEST(EvaluateScript, Ok) {
+ scoped_ptr<base::DictionaryValue> result;
+ base::DictionaryValue dict;
+ dict.SetBoolean("wasThrown", false);
+ dict.SetInteger("result.key", 100);
+ FakeDevToolsClient client;
+ client.set_result(dict);
+ ASSERT_TRUE(internal::EvaluateScript(
+ &client, 0, "", internal::ReturnByValue, &result).IsOk());
+ ASSERT_TRUE(result);
+ ASSERT_TRUE(result->HasKey("key"));
+}
+
+TEST(EvaluateScriptAndGetValue, MissingType) {
+ scoped_ptr<base::Value> result;
+ FakeDevToolsClient client;
base::DictionaryValue dict;
dict.SetBoolean("wasThrown", false);
dict.SetInteger("result.value", 1);
- ASSERT_NO_FATAL_FAILURE(AssertEvalFails(dict));
+ client.set_result(dict);
+ ASSERT_TRUE(internal::EvaluateScriptAndGetValue(
+ &client, 0, "", &result).IsError());
}
-TEST(ChromeImplEvaluateScript, Undefined) {
+TEST(EvaluateScriptAndGetValue, Undefined) {
scoped_ptr<base::Value> result;
FakeDevToolsClient client;
base::DictionaryValue dict;
dict.SetBoolean("wasThrown", false);
dict.SetString("result.type", "undefined");
client.set_result(dict);
- Status status = internal::EvaluateScript(&client, "", &result);
+ Status status = internal::EvaluateScriptAndGetValue(
+ &client, 0, "", &result);
ASSERT_EQ(kOk, status.code());
ASSERT_TRUE(result && result->IsType(base::Value::TYPE_NULL));
}
-TEST(ChromeImplEvaluateScript, Value) {
+TEST(EvaluateScriptAndGetValue, Ok) {
scoped_ptr<base::Value> result;
FakeDevToolsClient client;
base::DictionaryValue dict;
@@ -161,14 +187,15 @@ TEST(ChromeImplEvaluateScript, Value) {
dict.SetInteger("result.value.status", 0);
dict.SetInteger("result.value.value", 1);
client.set_result(dict);
- Status status = internal::EvaluateScript(&client, "", &result);
+ Status status = internal::EvaluateScriptAndGetValue(
+ &client, 0, "", &result);
ASSERT_EQ(kOk, status.code());
int value;
ASSERT_TRUE(result && result->GetAsInteger(&value));
ASSERT_EQ(1, value);
}
-TEST(ChromeImplEvaluateScript, ScriptError) {
+TEST(EvaluateScriptAndGetValue, ScriptError) {
scoped_ptr<base::Value> result;
FakeDevToolsClient client;
base::DictionaryValue dict;
@@ -177,7 +204,32 @@ TEST(ChromeImplEvaluateScript, ScriptError) {
dict.SetInteger("result.value.status", 1);
dict.SetInteger("result.value.value", 1);
client.set_result(dict);
- Status status = internal::EvaluateScript(&client, "", &result);
+ Status status = internal::EvaluateScriptAndGetValue(
+ &client, 0, "", &result);
ASSERT_EQ(1, status.code());
ASSERT_FALSE(result);
}
+
+TEST(EvaluateScriptAndGetObject, NoObject) {
+ FakeDevToolsClient client;
+ base::DictionaryValue dict;
+ dict.SetBoolean("wasThrown", false);
+ dict.SetString("result.type", "integer");
+ client.set_result(dict);
+ std::string object_id;
+ ASSERT_TRUE(internal::EvaluateScriptAndGetObject(
+ &client, 0, "", &object_id).IsError());
+ ASSERT_TRUE(object_id.empty());
+}
+
+TEST(EvaluateScriptAndGetObject, Ok) {
+ FakeDevToolsClient client;
+ base::DictionaryValue dict;
+ dict.SetBoolean("wasThrown", false);
+ dict.SetString("result.objectId", "id");
+ client.set_result(dict);
+ std::string object_id;
+ ASSERT_TRUE(internal::EvaluateScriptAndGetObject(
+ &client, 0, "", &object_id).IsOk());
+ ASSERT_STREQ("id", object_id.c_str());
+}
« no previous file with comments | « chrome/test/chromedriver/chrome_impl.cc ('k') | chrome/test/chromedriver/chromedriver.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698