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

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: Added unittest, display connection stats ability, and error check for transition delay. 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
« no previous file with comments | « remoting/test/chromoting_test_driver_environment.cc ('k') | remoting/test/fake_host_list_fetcher.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..c9a4e5e97e50f86777e9b1dd98bf96d6b6ae1a9e
--- /dev/null
+++ b/remoting/test/chromoting_test_driver_environment_unittest.cc
@@ -0,0 +1,189 @@
+// 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 "base/files/file_path.h"
+#include "remoting/test/fake_access_token_fetcher.h"
+#include "remoting/test/fake_host_list_fetcher.h"
+#include "remoting/test/fake_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";
+const unsigned int kExpectedHostListSize = 1;
+} // namespace
+
+namespace remoting {
+namespace test {
+
+class ChromotingTestDriverEnvironmentTest : public ::testing::Test {
+ public:
+ ChromotingTestDriverEnvironmentTest();
+ ~ChromotingTestDriverEnvironmentTest() override;
+
+ protected:
+ // testing::Test interface.
+ void SetUp() override;
+
+ 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::SetUp() {
+ ChromotingTestDriverEnvironment::EnvironmentOptions options;
+ options.user_name = kUserNameValue;
+ options.host_name = kHostNameValue;
+
+ 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.push_back(kFakeHostFirstTokenUrlValue);
+ fake_host.token_url_patterns.push_back(kFakeHostSecondTokenUrlValue);
+ fake_host.token_url_patterns.push_back(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) {
+ // Pass in an auth code to initialize the environment.
+ 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_EQ(environment_object_->access_token(),
+ kFakeAccessTokenFetcherAccessTokenValue);
+
+ // Should only have one host in the list.
+ EXPECT_EQ(environment_object_->host_list().size(), kExpectedHostListSize);
+ HostInfo fake_host = environment_object_->host_list().at(0);
+ EXPECT_EQ(fake_host.host_id, kFakeHostIdValue);
+ EXPECT_EQ(fake_host.host_jid, kFakeHostJidValue);
+ EXPECT_EQ(fake_host.host_name, kFakeHostNameValue);
+ EXPECT_EQ(fake_host.public_key, kFakeHostPublicKeyValue);
+ EXPECT_EQ(fake_host.token_url_patterns.at(0), kFakeHostFirstTokenUrlValue);
+ EXPECT_EQ(fake_host.token_url_patterns.at(1), kFakeHostSecondTokenUrlValue);
+ EXPECT_EQ(fake_host.token_url_patterns.at(2), kFakeHostThirdTokenUrlValue);
+}
+
+TEST_F(ChromotingTestDriverEnvironmentTest,
+ InitializeObjectWithAuthCodeFailed) {
+ 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) {
+ // 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_EQ(environment_object_->access_token(),
+ kFakeAccessTokenFetcherAccessTokenValue);
+
+ // Should only have one host in the list.
+ EXPECT_EQ(environment_object_->host_list().size(), kExpectedHostListSize);
+ HostInfo fake_host = environment_object_->host_list().at(0);
+ EXPECT_EQ(fake_host.host_id, kFakeHostIdValue);
+ EXPECT_EQ(fake_host.host_jid, kFakeHostJidValue);
+ EXPECT_EQ(fake_host.host_name, kFakeHostNameValue);
+ EXPECT_EQ(fake_host.public_key, kFakeHostPublicKeyValue);
+ EXPECT_EQ(fake_host.token_url_patterns.at(0), kFakeHostFirstTokenUrlValue);
+ EXPECT_EQ(fake_host.token_url_patterns.at(1), kFakeHostSecondTokenUrlValue);
+ EXPECT_EQ(fake_host.token_url_patterns.at(2), kFakeHostThirdTokenUrlValue);
+}
+
+TEST_F(ChromotingTestDriverEnvironmentTest,
+ InitializeObjectWithRefreshTokenFailed) {
+ 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) {
+ // 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) {
+ // 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) {
+ // 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) {
+ // 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
« no previous file with comments | « remoting/test/chromoting_test_driver_environment.cc ('k') | remoting/test/fake_host_list_fetcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698