| Index: chrome/browser/remoting/directory_add_request_unittest.cc
|
| diff --git a/chrome/browser/remoting/directory_add_request_unittest.cc b/chrome/browser/remoting/directory_add_request_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d30ffd57a2363f6e7d9ef76ca7779821fd973c19
|
| --- /dev/null
|
| +++ b/chrome/browser/remoting/directory_add_request_unittest.cc
|
| @@ -0,0 +1,76 @@
|
| +// Copyright (c) 2010 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 "chrome/browser/remoting/directory_add_request.h"
|
| +#include "net/url_request/url_request_status.h"
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace remoting {
|
| +
|
| +namespace {
|
| +class MockDoneCallback {
|
| + public:
|
| + MOCK_METHOD2(OnDone,
|
| + void(DirectoryAddRequest::Result,
|
| + const std::string& message));
|
| +};
|
| +} // namespace
|
| +
|
| +class DirectoryAddRequestTest : public testing::Test {
|
| + protected:
|
| + void TestResult(int response_code, const std::string& data,
|
| + DirectoryAddRequest::Result expected_result,
|
| + const std::string& expected_message) {
|
| + MockDoneCallback callback;
|
| + EXPECT_CALL(callback, OnDone(expected_result, expected_message))
|
| + .Times(1);
|
| +
|
| + target_.done_callback_.reset(
|
| + NewCallback(&callback, &MockDoneCallback::OnDone));
|
| +
|
| + GURL url;
|
| + URLRequestStatus status_ok;
|
| + ResponseCookies cookies;
|
| + target_.OnURLFetchComplete(NULL, url, status_ok, response_code,
|
| + cookies, data);
|
| + }
|
| +
|
| + DirectoryAddRequest target_;
|
| +};
|
| +
|
| +TEST_F(DirectoryAddRequestTest, Success) {
|
| + TestResult(200, "{\"data\":{\"kind\":\"chromoting#host\","
|
| + "\"hostId\":\"e64906c9-fdc9-4921-80cb-563cf7f564f3\","
|
| + "\"hostName\":\"host_name\",\"publicKey\":\"PUBLIC+KEY\"}}",
|
| + DirectoryAddRequest::SUCCESS, "");
|
| +}
|
| +
|
| +TEST_F(DirectoryAddRequestTest, Duplicate) {
|
| + TestResult(400, "{\"error\":{\"errors\":[{\"domain\":\"global\","
|
| + "\"reason\":\"invalid\",\"message\":\"Attempt to register "
|
| + "a duplicate host.\"}],\"code\":400,\"message\":\"Attempt to "
|
| + "register a duplicate host.\"}}",
|
| + DirectoryAddRequest::ERROR_EXISTS,
|
| + "Attempt to register a duplicate host.");
|
| +}
|
| +
|
| +TEST_F(DirectoryAddRequestTest, InvalidRequest) {
|
| + TestResult(400, "{\"error\":{\"errors\":[{\"domain\":\"global\","
|
| + "\"reason\":\"invalid\",\"message\":\"Invalid Value\"}],"
|
| + "\"code\":400,\"message\":\"Invalid Value\"}}",
|
| + DirectoryAddRequest::ERROR_INVALID_REQUEST,
|
| + "Invalid Value");
|
| +}
|
| +
|
| +TEST_F(DirectoryAddRequestTest, InvalidToken) {
|
| + TestResult(401, "{\"error\":{\"errors\":[{\"domain\":\"global\","
|
| + "\"reason\":\"invalid\",\"message\":\"Token invalid\","
|
| + "\"locationType\":\"header\",\"location\":\"Authorization\"}],"
|
| + "\"code\":401,\"message\":\"Token invalid\"}}",
|
| + DirectoryAddRequest::ERROR_AUTH,
|
| + "Token invalid");
|
| +}
|
| +
|
| +} // namespace remoting
|
|
|