| Index: chrome/renderer/automation/automation_renderer_helper_browsertest.cc
|
| diff --git a/chrome/renderer/automation/automation_renderer_helper_browsertest.cc b/chrome/renderer/automation/automation_renderer_helper_browsertest.cc
|
| index d6149535cbb884f64aef752dcf29b70437d5d334..c75bdd15434c8fab15a22737845916104655cdec 100644
|
| --- a/chrome/renderer/automation/automation_renderer_helper_browsertest.cc
|
| +++ b/chrome/renderer/automation/automation_renderer_helper_browsertest.cc
|
| @@ -4,7 +4,11 @@
|
|
|
| #include "base/command_line.h"
|
| #include "base/file_util.h"
|
| +#include "base/json/json_reader.h"
|
| #include "base/md5.h"
|
| +#include "base/utf_string_conversions.h"
|
| +#include "chrome/common/automation_constants.h"
|
| +#include "chrome/common/automation_events.h"
|
| #include "chrome/test/base/chrome_render_view_test.h"
|
| #include "chrome/renderer/automation/automation_renderer_helper.h"
|
| #include "content/public/renderer/render_view.h"
|
| @@ -76,3 +80,43 @@ TEST_F(AutomationRendererHelperTest, RTLSnapshot) {
|
| view_->GetWebView(), &png_data, &error_msg)) << error_msg;
|
| CompareSnapshot(png_data, kThreeBoxesMD5);
|
| }
|
| +
|
| +TEST_F(AutomationRendererHelperTest, ScriptChain) {
|
| + ScriptEvaluationRequest request("({'result': 10})", "");
|
| + ScriptEvaluationRequest request_plus1(
|
| + "({'result': arguments[0].result + 1})", "");
|
| + std::vector<ScriptEvaluationRequest> script_chain;
|
| + script_chain.push_back(request);
|
| + script_chain.push_back(request_plus1);
|
| + script_chain.push_back(request_plus1);
|
| +
|
| + AutomationRendererHelper helper(view_);
|
| + scoped_ptr<base::DictionaryValue> value;
|
| + std::string error;
|
| + ASSERT_TRUE(helper.EvaluateScriptChain(script_chain, &value, &error));
|
| + int result;
|
| + ASSERT_TRUE(value->GetInteger("result", &result));
|
| + EXPECT_EQ(12, result);
|
| +}
|
| +
|
| +TEST_F(AutomationRendererHelperTest, ScriptChainError) {
|
| + ScriptEvaluationRequest request("({'result': 10})", "");
|
| + ScriptEvaluationRequest error_request(
|
| + "({'result': arguments[0].result + 1, 'error': {'msg': 'some msg'}})",
|
| + "");
|
| + std::vector<ScriptEvaluationRequest> script_chain;
|
| + script_chain.push_back(request);
|
| + script_chain.push_back(error_request);
|
| + script_chain.push_back(request);
|
| +
|
| + AutomationRendererHelper helper(view_);
|
| + scoped_ptr<base::DictionaryValue> result;
|
| + std::string error;
|
| + ASSERT_FALSE(helper.EvaluateScriptChain(script_chain, &result, &error));
|
| + scoped_ptr<base::Value> value(base::JSONReader::Read(error));
|
| + base::DictionaryValue* dict;
|
| + ASSERT_TRUE(value->GetAsDictionary(&dict));
|
| + std::string msg;
|
| + ASSERT_TRUE(dict->GetString("msg", &msg));
|
| + EXPECT_STREQ("some msg", msg.c_str());
|
| +}
|
|
|