Index: chrome/browser/chromeos/policy/consumer_management_notifier_unittest.cc |
diff --git a/chrome/browser/chromeos/policy/consumer_management_notifier_unittest.cc b/chrome/browser/chromeos/policy/consumer_management_notifier_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3216fe35bb825f4e9b8b0bef8f1d4117dd58882d |
--- /dev/null |
+++ b/chrome/browser/chromeos/policy/consumer_management_notifier_unittest.cc |
@@ -0,0 +1,101 @@ |
+// Copyright 2014 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/chromeos/policy/consumer_management_notifier.h" |
+ |
+#include "chrome/browser/browser_process.h" |
+#include "chrome/browser/browser_process_platform_part.h" |
+#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
+#include "chrome/browser/chromeos/policy/consumer_management_service.h" |
+#include "chrome/browser/chromeos/policy/fake_consumer_management_service.h" |
+#include "chrome/browser/notifications/notification_ui_manager.h" |
+#include "chrome/test/base/browser_with_test_window_test.h" |
+#include "chrome/test/base/testing_browser_process.h" |
+#include "chrome/test/base/testing_profile_manager.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace policy { |
+ |
+class ConsumerManagementNotifierTest : public BrowserWithTestWindowTest { |
+ public: |
+ ConsumerManagementNotifierTest() |
+ : fake_service_(new FakeConsumerManagementService()) { |
+ fake_service_->SetStatusAndEnrollmentStage( |
+ ConsumerManagementService::STATUS_UNENROLLED, |
+ ConsumerManagementService::ENROLLMENT_STAGE_NONE); |
+ |
+ // Inject objects. |
+ BrowserPolicyConnectorChromeOS* connector = |
+ g_browser_process->platform_part()->browser_policy_connector_chromeos(); |
+ connector->SetConsumerManagementServiceForTesting( |
+ make_scoped_ptr(fake_service_)); |
bartfab (slow)
2014/11/27 14:09:09
Nit: #include "base/memory/scoped_ptr.h"
davidyu
2014/11/28 02:45:26
Done.
|
+ } |
+ |
+ virtual void SetUp() override { |
bartfab (slow)
2014/11/27 14:09:09
Nit: No |virtual| with |override|.
davidyu
2014/11/28 02:45:26
Done.
|
+ BrowserWithTestWindowTest::SetUp(); |
+ |
+ // Set up TestingProfileManager. This is required for NotificationUIManager. |
+ testing_profile_manager_.reset(new TestingProfileManager( |
+ TestingBrowserProcess::GetGlobal())); |
+ ASSERT_TRUE(testing_profile_manager_->SetUp()); |
+ } |
+ |
+ virtual void TearDown() override { |
+ if (notification_) |
+ notification_->Shutdown(); |
+ notification_.reset(); |
+ g_browser_process->notification_ui_manager()->CancelAll(); |
+ testing_profile_manager_.reset(); |
+ |
+ BrowserWithTestWindowTest::TearDown(); |
+ } |
+ |
+ void CreateConsumerManagementNotifier() { |
+ notification_.reset( |
+ new ConsumerManagementNotifier(profile(), fake_service_)); |
+ } |
+ |
+ bool HasEnrollmentNotification() { |
+ return g_browser_process->notification_ui_manager()->FindById( |
+ "consumer_management.enroll", |
+ NotificationUIManager::GetProfileID(profile())); |
+ } |
+ |
+ FakeConsumerManagementService* fake_service_; |
+ scoped_ptr<TestingProfileManager> testing_profile_manager_; |
+ scoped_ptr<ConsumerManagementNotifier> notification_; |
+}; |
+ |
+TEST_F(ConsumerManagementNotifierTest, ShowsNotificationWhenCreated) { |
+ fake_service_->SetStatusAndEnrollmentStage( |
+ ConsumerManagementService::STATUS_UNENROLLED, |
+ ConsumerManagementService::ENROLLMENT_STAGE_CANCELED); |
+ EXPECT_FALSE(HasEnrollmentNotification()); |
+ |
+ CreateConsumerManagementNotifier(); |
+ |
+ EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_NONE, |
+ fake_service_->GetEnrollmentStage()); |
+ EXPECT_TRUE(HasEnrollmentNotification()); |
+} |
+ |
+TEST_F(ConsumerManagementNotifierTest, ShowsNotificationWhenStatusChanged) { |
+ fake_service_->SetStatusAndEnrollmentStage( |
+ ConsumerManagementService::STATUS_ENROLLING, |
+ ConsumerManagementService::ENROLLMENT_STAGE_OWNER_STORED); |
+ |
+ CreateConsumerManagementNotifier(); |
+ EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_OWNER_STORED, |
+ fake_service_->GetEnrollmentStage()); |
+ EXPECT_FALSE(HasEnrollmentNotification()); |
+ |
+ fake_service_->SetStatusAndEnrollmentStage( |
+ ConsumerManagementService::STATUS_ENROLLED, |
+ ConsumerManagementService::ENROLLMENT_STAGE_SUCCESS); |
+ EXPECT_EQ(ConsumerManagementService::ENROLLMENT_STAGE_NONE, |
+ fake_service_->GetEnrollmentStage()); |
+ EXPECT_TRUE(HasEnrollmentNotification()); |
+} |
+ |
+} // namespace policy |