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

Unified Diff: remoting/test/chromoting_test_driver_environment_unittest.cc

Issue 1237883002: Added chromoting test environment for the tests to share data. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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: remoting/test/chromoting_test_driver_environment_unittest.cc
diff --git a/remoting/test/chromoting_test_driver_environment_unittest.cc b/remoting/test/chromoting_test_driver_environment_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..6854b14a2412d0f7c0b16d921590758cb6d0f6ea
--- /dev/null
+++ b/remoting/test/chromoting_test_driver_environment_unittest.cc
@@ -0,0 +1,198 @@
+// Copyright 2015 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 "remoting/test/chromoting_test_driver_environment.h"
+
+#include <algorithm>
+
+#include "base/files/file_path.h"
+#include "remoting/test/fake_access_token_fetcher.h"
+#include "remoting/test/fake_app_remoting_report_issue_request.h"
+#include "remoting/test/fake_host_list_fetcher.h"
+#include "remoting/test/fake_refresh_token_store.h"
+#include "remoting/test/refresh_token_store.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace {
+const char kAuthCodeValue[] = "4/892379827345jkefvkdfbv";
+const char kUserNameValue[] = "remoting_user@gmail.com";
+const char kHostNameValue[] = "remote_host_name";
+const char kFakeHostNameValue[] = "fake_host_name";
+const char kFakeHostIdValue[] = "fake_host_id";
+const char kFakeHostJidValue[] = "fake_host_jid";
+const char kFakeHostOfflineReasonValue[] = "fake_offline_reason";
+const char kFakeHostPublicKeyValue[] = "fake_public_key";
+const char kFakeHostFirstTokenUrlValue[] = "token_url_1";
+const char kFakeHostSecondTokenUrlValue[] = "token_url_2";
+const char kFakeHostThirdTokenUrlValue[] = "token_url_3";
+} // namespace
+
+namespace remoting {
+namespace test {
+
+class ChromotingTestDriverEnvironmentTest : public ::testing::Test {
+ public:
+ ChromotingTestDriverEnvironmentTest();
+ ~ChromotingTestDriverEnvironmentTest() override;
+
+ protected:
+ void Initialize();
+ void Initialize(
+ const ChromotingTestDriverEnvironment::EnvironmentOptions& options);
joedow 2015/07/15 03:04:53 The app remoting counterpart to this file uses two
tonychun 2015/07/15 17:24:49 Done.
+
+ FakeAccessTokenFetcher fake_access_token_fetcher_;
+ FakeRefreshTokenStore fake_token_store_;
+ FakeHostListFetcher fake_host_list_fetcher_;
+
+ scoped_ptr<ChromotingTestDriverEnvironment> environment_object_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ChromotingTestDriverEnvironmentTest);
+};
+
+ChromotingTestDriverEnvironmentTest::ChromotingTestDriverEnvironmentTest() {
+}
+
+ChromotingTestDriverEnvironmentTest::~ChromotingTestDriverEnvironmentTest() {
+}
+
+void ChromotingTestDriverEnvironmentTest::Initialize() {
+ ChromotingTestDriverEnvironment::EnvironmentOptions options;
+ options.user_name = kUserNameValue;
+ options.host_name = kHostNameValue;
+
+ Initialize(options);
+}
+
+void ChromotingTestDriverEnvironmentTest::Initialize(
+ const ChromotingTestDriverEnvironment::EnvironmentOptions& options) {
+ environment_object_.reset(new ChromotingTestDriverEnvironment(options));
+
+ std::vector<HostInfo> fake_host_list;
+ HostInfo fake_host;
+ fake_host.host_id = kFakeHostIdValue;
+ fake_host.host_jid = kFakeHostJidValue;
+ fake_host.host_name = kFakeHostNameValue;
+ fake_host.offline_reason = kFakeHostOfflineReasonValue;
+ fake_host.public_key = kFakeHostPublicKeyValue;
+ fake_host.token_url_patterns = {kFakeHostFirstTokenUrlValue,
+ kFakeHostSecondTokenUrlValue,
+ kFakeHostThirdTokenUrlValue};
+ fake_host_list.push_back(fake_host);
+
+ fake_host_list_fetcher_.set_retrieved_host_list(fake_host_list);
+
+ environment_object_->SetAccessTokenFetcherForTest(
+ &fake_access_token_fetcher_);
+ environment_object_->SetRefreshTokenStoreForTest(&fake_token_store_);
+ environment_object_->SetHostListFetcherForTest(&fake_host_list_fetcher_);
+}
+
+
+TEST_F(ChromotingTestDriverEnvironmentTest, InitializeObjectWithAuthCode) {
+ Initialize();
+
+ EXPECT_TRUE(environment_object_->Initialize(kAuthCodeValue));
+ EXPECT_TRUE(fake_token_store_.refresh_token_write_attempted());
+ EXPECT_EQ(fake_token_store_.stored_refresh_token_value(),
+ kFakeAccessTokenFetcherRefreshTokenValue);
+ EXPECT_EQ(environment_object_->user_name(), kUserNameValue);
+ EXPECT_EQ(environment_object_->host_name(), kHostNameValue);
+ EXPECT_FALSE(environment_object_->host_list().empty());
+ EXPECT_EQ(environment_object_->access_token(),
+ kFakeAccessTokenFetcherAccessTokenValue);
+
+ // Attempt to init again, we should not see any additional calls or errors.
joedow 2015/07/15 03:04:53 Please update this string, it mentions 'any additi
joedow 2015/07/15 03:04:53 Also, thanks for adding unit tests! :)
tonychun 2015/07/15 17:24:49 Done.
tonychun 2015/07/15 17:24:49 Done.
+ EXPECT_TRUE(environment_object_->Initialize(kAuthCodeValue));
+}
+
+TEST_F(ChromotingTestDriverEnvironmentTest,
+ InitializeObjectWithAuthCodeFailed) {
+ Initialize();
+
+ fake_access_token_fetcher_.set_fail_access_token_from_auth_code(true);
+
+ EXPECT_FALSE(environment_object_->Initialize(kAuthCodeValue));
+ EXPECT_FALSE(fake_token_store_.refresh_token_write_attempted());
+}
+
+TEST_F(ChromotingTestDriverEnvironmentTest, InitializeObjectWithRefreshToken) {
+ Initialize();
+
+ // Pass in an empty auth code since we are using a refresh token.
+ EXPECT_TRUE(environment_object_->Initialize(std::string()));
+
+ // We should not write the refresh token a second time if we read from the
+ // disk originally.
+ EXPECT_FALSE(fake_token_store_.refresh_token_write_attempted());
+
+ // Verify the object was initialized correctly.
+ EXPECT_EQ(environment_object_->user_name(), kUserNameValue);
+ EXPECT_EQ(environment_object_->host_name(), kHostNameValue);
+ EXPECT_FALSE(environment_object_->host_list().empty());
+ EXPECT_EQ(environment_object_->access_token(),
+ kFakeAccessTokenFetcherAccessTokenValue);
+
+ // Attempt to init again, we should not see any additional calls or errors.
+ EXPECT_TRUE(environment_object_->Initialize(std::string()));
+}
+
+TEST_F(ChromotingTestDriverEnvironmentTest,
+ InitializeObjectWithRefreshTokenFailed) {
+ Initialize();
+
+ fake_access_token_fetcher_.set_fail_access_token_from_refresh_token(true);
+
+ // Pass in an empty auth code since we are using a refresh token.
+ EXPECT_FALSE(environment_object_->Initialize(std::string()));
+ EXPECT_FALSE(fake_token_store_.refresh_token_write_attempted());
+}
+
+TEST_F(ChromotingTestDriverEnvironmentTest, TearDownAfterInitializeSucceeds) {
+ Initialize();
+
+ // Pass in an empty auth code since we are using a refresh token.
+ EXPECT_TRUE(environment_object_->Initialize(std::string()));
+
+ // Note: We are using a static cast here because the TearDown() method is
+ // private as it is an interface method that we only want to call
+ // directly in tests or by the GTEST framework.
+ static_cast<testing::Environment*>(environment_object_.get())->TearDown();
+}
+
+TEST_F(ChromotingTestDriverEnvironmentTest,
+ InitializeObjectNoAuthCodeOrRefreshToken) {
+ Initialize();
+
+ // Clear out the 'stored' refresh token value.
+ fake_token_store_.set_refresh_token_value(std::string());
+
+ // With no auth code or refresh token, then the initialization should fail.
+ EXPECT_FALSE(environment_object_->Initialize(std::string()));
+ EXPECT_FALSE(fake_token_store_.refresh_token_write_attempted());
+}
+
+TEST_F(ChromotingTestDriverEnvironmentTest,
+ InitializeObjectWithAuthCodeWriteFailed) {
+ Initialize();
+
+ // Simulate a failure writing the token to the disk.
+ fake_token_store_.set_refresh_token_write_succeeded(false);
+
+ EXPECT_FALSE(environment_object_->Initialize(kAuthCodeValue));
+ EXPECT_TRUE(fake_token_store_.refresh_token_write_attempted());
+}
+
+TEST_F(ChromotingTestDriverEnvironmentTest, HostListEmptyFromDirectory) {
+ Initialize();
+
+ // Set the host list fetcher to return an empty list.
+ fake_host_list_fetcher_.set_retrieved_host_list(std::vector<HostInfo>());
+
+ EXPECT_FALSE(environment_object_->Initialize(kAuthCodeValue));
+ EXPECT_TRUE(fake_token_store_.refresh_token_write_attempted());
+}
+
+} // namespace test
+} // namespace remoting

Powered by Google App Engine
This is Rietveld 408576698