普通文本  |  46行  |  1.63 KB

// Copyright (c) 2011 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/basictypes.h"
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/chromeos/login/enterprise_enrollment_screen.h"
#include "chrome/browser/chromeos/login/mock_screen_observer.h"
#include "chrome/browser/chromeos/login/wizard_controller.h"
#include "chrome/browser/chromeos/login/wizard_in_process_browser_test.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"

using testing::Mock;

namespace chromeos {

class EnterpriseEnrollmentScreenTest : public WizardInProcessBrowserTest {
 public:
  EnterpriseEnrollmentScreenTest()
      : WizardInProcessBrowserTest(
            WizardController::kEnterpriseEnrollmentScreenName) {}

 private:
  DISALLOW_COPY_AND_ASSIGN(EnterpriseEnrollmentScreenTest);
};

IN_PROC_BROWSER_TEST_F(EnterpriseEnrollmentScreenTest, TestCancel) {
  ASSERT_TRUE(controller() != NULL);
  MockScreenObserver mock_screen_observer;
  controller()->set_observer(&mock_screen_observer);
  EnterpriseEnrollmentScreen* enterprise_enrollment_screen =
      controller()->GetEnterpriseEnrollmentScreen();
  ASSERT_TRUE(enterprise_enrollment_screen != NULL);
  ASSERT_EQ(controller()->current_screen(), enterprise_enrollment_screen);

  EXPECT_CALL(mock_screen_observer,
              OnExit(ScreenObserver::ENTERPRISE_ENROLLMENT_CANCELLED));
  enterprise_enrollment_screen->CancelEnrollment();
  Mock::VerifyAndClearExpectations(&mock_screen_observer);

  controller()->set_observer(NULL);
}

}  // namespace chromeos