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 |