Chromium Code Reviews| Index: chrome/browser/chromeos/policy/user_affiliation_browsertest.cc |
| diff --git a/chrome/browser/chromeos/policy/user_affiliation_browsertest.cc b/chrome/browser/chromeos/policy/user_affiliation_browsertest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..63a7246c3bfa84cbca13d13e12ed11e5c04fb6a7 |
| --- /dev/null |
| +++ b/chrome/browser/chromeos/policy/user_affiliation_browsertest.cc |
| @@ -0,0 +1,91 @@ |
| +// 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 "base/memory/scoped_ptr.h" |
| +#include "chrome/browser/chromeos/policy/affiliation_test_helper.h" |
| +#include "chrome/browser/chromeos/policy/device_policy_cros_browser_test.h" |
| +#include "chromeos/dbus/dbus_thread_manager.h" |
| +#include "chromeos/dbus/fake_session_manager_client.h" |
| +#include "chromeos/dbus/session_manager_client.h" |
| +#include "components/user_manager/user.h" |
| +#include "components/user_manager/user_manager.h" |
| +#include "content/public/test/test_utils.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +namespace chromeos { |
|
oshima
2015/11/13 19:53:04
ditto
oshima
2015/11/13 19:53:05
ditto
peletskyi
2015/11/16 14:33:15
Done.
peletskyi
2015/11/16 14:33:15
Done.
|
| + |
| +namespace { |
| + |
| +const char kAffiliatedUser[] = "affiliated-user@example.com"; |
| +const char kAffiliationID[] = "some-affiliation-id"; |
| +const char kAnotherAffiliationID[] = "another-affiliation-id"; |
| +struct Params { |
| + explicit Params(bool affiliated) : affiliated_(affiliated) {} |
| + bool affiliated_; |
| +}; |
|
oshima
2015/11/13 19:53:04
new line
peletskyi
2015/11/16 14:33:15
Done.
|
| +} // namespace |
| + |
| +class UserAffiliationBrowserTest |
| + : public InProcessBrowserTest, |
| + public ::testing::WithParamInterface<Params> { |
| + public: |
| + UserAffiliationBrowserTest() { set_exit_when_last_browser_closes(false); } |
| + |
| + protected: |
| + // InProcessBrowserTest |
| + void SetUpCommandLine(base::CommandLine* command_line) override { |
| + InProcessBrowserTest::SetUpCommandLine(command_line); |
| + affiliation_test_helper::AppendCommandLineSwitchesForLoginManager( |
| + command_line); |
| + } |
| + |
| + // InProcessBrowserTest |
| + void SetUpInProcessBrowserTestFixture() override { |
| + InProcessBrowserTest::SetUpInProcessBrowserTestFixture(); |
| + |
| + FakeSessionManagerClient* fake_session_manager_client = |
| + new chromeos::FakeSessionManagerClient; |
| + DBusThreadManager::GetSetterForTesting()->SetSessionManagerClient( |
| + scoped_ptr<SessionManagerClient>(fake_session_manager_client)); |
|
oshima
2015/11/13 19:53:04
nit: make_scoped_ptr
peletskyi
2015/11/16 14:33:15
Done.
|
| + |
| + policy::UserPolicyBuilder user_policy; |
| + policy::DevicePolicyCrosTestHelper test_helper; |
| + |
| + std::set<std::string> device_affiliation_ids; |
| + device_affiliation_ids.insert(kAffiliationID); |
| + affiliation_test_helper::SetDeviceAffiliationID( |
| + &test_helper, fake_session_manager_client, device_affiliation_ids); |
| + |
| + std::set<std::string> user_affiliation_ids; |
| + if (GetParam().affiliated_) { |
| + user_affiliation_ids.insert(kAffiliationID); |
| + } else { |
| + user_affiliation_ids.insert(kAnotherAffiliationID); |
| + } |
| + affiliation_test_helper::SetUserAffiliationIDs( |
| + &user_policy, fake_session_manager_client, kAffiliatedUser, |
| + user_affiliation_ids); |
| + } |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(UserAffiliationBrowserTest); |
| +}; |
| + |
| +IN_PROC_BROWSER_TEST_P(UserAffiliationBrowserTest, PRE_Affiliated) { |
| + affiliation_test_helper::PreLoginUser(kAffiliatedUser); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_P(UserAffiliationBrowserTest, Affiliated) { |
| + affiliation_test_helper::LoginUser(kAffiliatedUser); |
| + EXPECT_EQ(GetParam().affiliated_, |
| + user_manager::UserManager::Get() |
| + ->FindUser(AccountId::FromUserEmail(kAffiliatedUser)) |
| + ->is_affiliated()); |
| +} |
| + |
| +INSTANTIATE_TEST_CASE_P(AffiliationCheck, |
| + UserAffiliationBrowserTest, |
| + ::testing::Values(Params(true), Params(false))); |
| + |
| +} // namespace chromeos |