Index: chrome/test/chromedriver/chromedriver_unittest.cc |
diff --git a/chrome/test/chromedriver/chromedriver_unittest.cc b/chrome/test/chromedriver/chromedriver_unittest.cc |
deleted file mode 100644 |
index 9e585e328b1dc8af561d781852c38415bff6bb0c..0000000000000000000000000000000000000000 |
--- a/chrome/test/chromedriver/chromedriver_unittest.cc |
+++ /dev/null |
@@ -1,170 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include <list> |
-#include <string> |
- |
-#include "base/bind.h" |
-#include "base/compiler_specific.h" |
-#include "base/json/json_reader.h" |
-#include "base/location.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "base/memory/scoped_vector.h" |
-#include "base/message_loop.h" |
-#include "base/synchronization/waitable_event.h" |
-#include "base/threading/thread.h" |
-#include "base/values.h" |
-#include "chrome/test/chromedriver/chrome/status.h" |
-#include "chrome/test/chromedriver/chromedriver.h" |
-#include "chrome/test/chromedriver/command_executor.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace { |
- |
-void ExpectExecuteError(const std::string& command) { |
- std::string response; |
- ExecuteCommand(command, &response); |
- scoped_ptr<base::Value> value(base::JSONReader::Read(response)); |
- ASSERT_TRUE(value.get()); |
- base::DictionaryValue* dict; |
- ASSERT_TRUE(value->GetAsDictionary(&dict)); |
- int status; |
- ASSERT_TRUE(dict->GetInteger("status", &status)); |
- EXPECT_EQ(kUnknownError, status); |
-} |
- |
-class DummyExecutor : public CommandExecutor { |
- public: |
- virtual ~DummyExecutor() {} |
- |
- virtual void Init() OVERRIDE {} |
- virtual void ExecuteCommand(const std::string& name, |
- const base::DictionaryValue& params, |
- const std::string& session_id, |
- StatusCode* status, |
- scoped_ptr<base::Value>* value, |
- std::string* out_session_id) OVERRIDE {} |
-}; |
- |
- |
-struct ExpectedCommand { |
- ExpectedCommand( |
- const std::string& name, |
- const base::DictionaryValue& in_params, |
- const std::string& session_id, |
- StatusCode return_status, |
- scoped_ptr<base::Value> return_value, |
- const std::string& return_session_id) |
- : name(name), |
- session_id(session_id), |
- return_status(return_status), |
- return_value(return_value.Pass()), |
- return_session_id(return_session_id) { |
- params.MergeDictionary(&in_params); |
- } |
- |
- ~ExpectedCommand() {} |
- |
- std::string name; |
- base::DictionaryValue params; |
- std::string session_id; |
- StatusCode return_status; |
- scoped_ptr<base::Value> return_value; |
- std::string return_session_id; |
-}; |
- |
-class ExecutorMock : public CommandExecutor { |
- public: |
- virtual ~ExecutorMock() { |
- EXPECT_TRUE(DidSatisfyExpectations()); |
- } |
- |
- virtual void Init() OVERRIDE {} |
- |
- virtual void ExecuteCommand(const std::string& name, |
- const base::DictionaryValue& params, |
- const std::string& session_id, |
- StatusCode* status, |
- scoped_ptr<base::Value>* value, |
- std::string* out_session_id) OVERRIDE { |
- ASSERT_TRUE(expectations_.size()); |
- ASSERT_STREQ(expectations_[0]->name.c_str(), name.c_str()); |
- ASSERT_TRUE(expectations_[0]->params.Equals(¶ms)); |
- ASSERT_STREQ(expectations_[0]->session_id.c_str(), session_id.c_str()); |
- *status = expectations_[0]->return_status; |
- value->reset(expectations_[0]->return_value.release()); |
- *out_session_id = expectations_[0]->return_session_id; |
- expectations_.erase(expectations_.begin()); |
- } |
- |
- void Expect(scoped_ptr<ExpectedCommand> expected) { |
- expectations_.push_back(expected.release()); |
- } |
- |
- bool DidSatisfyExpectations() const { |
- return expectations_.empty(); |
- } |
- |
- private: |
- ScopedVector<ExpectedCommand> expectations_; |
-}; |
- |
-} // namespace |
- |
-TEST(ChromeDriver, InvalidCommands) { |
- Init(scoped_ptr<CommandExecutor>(new DummyExecutor())); |
- ExpectExecuteError("hi[]"); |
- ExpectExecuteError("[]"); |
- ExpectExecuteError( |
- "{\"parameters\": {}, \"sessionId\": \"\"}"); |
- ExpectExecuteError( |
- "{\"name\": 1, \"parameters\": {}, \"sessionId\": \"\"}"); |
- ExpectExecuteError( |
- "{\"name\": \"\", \"sessionId\": \"\"}"); |
- ExpectExecuteError( |
- "{\"name\": \"\", \"parameters\": 1, \"sessionId\": \"\"}"); |
- ExpectExecuteError( |
- "{\"name\": \"\", \"parameters\": {}}"); |
- ExpectExecuteError( |
- "{\"name\": \"\", \"parameters\": {}, \"sessionId\": 1}"); |
- Shutdown(); |
-} |
- |
-TEST(ChromeDriver, ExecuteCommand) { |
- scoped_ptr<ExecutorMock> scoped_mock(new ExecutorMock()); |
- ExecutorMock* mock = scoped_mock.get(); |
- Init(scoped_mock.PassAs<CommandExecutor>()); |
- { |
- base::DictionaryValue params; |
- params.SetInteger("param", 100); |
- scoped_ptr<base::Value> value(new base::StringValue("stuff")); |
- mock->Expect(scoped_ptr<ExpectedCommand>(new ExpectedCommand( |
- "name", params, "id", kOk, value.Pass(), "session_id"))); |
- } |
- std::string response; |
- ExecuteCommand("{\"name\": \"name\", " |
- " \"parameters\": {\"param\": 100}, " |
- " \"sessionId\": \"id\"}", |
- &response); |
- ASSERT_TRUE(mock->DidSatisfyExpectations()); |
- { |
- scoped_ptr<base::Value> value(base::JSONReader::Read(response)); |
- ASSERT_TRUE(value.get()); |
- base::DictionaryValue* dict; |
- ASSERT_TRUE(value->GetAsDictionary(&dict)); |
- int status; |
- ASSERT_TRUE(dict->GetInteger("status", &status)); |
- std::string value_str; |
- ASSERT_TRUE(dict->GetString("value", &value_str)); |
- EXPECT_STREQ("stuff", value_str.c_str()); |
- EXPECT_EQ(kOk, status); |
- } |
- { |
- base::DictionaryValue params; |
- scoped_ptr<base::Value> value(base::Value::CreateNullValue()); |
- mock->Expect(scoped_ptr<ExpectedCommand>(new ExpectedCommand( |
- "quitAll", params, std::string(), kOk, value.Pass(), std::string()))); |
- } |
- Shutdown(); |
-} |