Commit 8ea21472 authored by Aga Wronska's avatar Aga Wronska Committed by Commit Bot

Mark device as registered at the end of demo mode setup flow (both

online and offline).

Bug: 868025
Test: Run DemoSetupTest, DemoSetupControllerTest and WizardControllerDemoSetupTest.
Change-Id: Ifca8bc7f4c053d2ff060ee0fc529f38690124a65
Reviewed-on: https://chromium-review.googlesource.com/1157543Reviewed-by: default avatarJacob Dufault <jdufault@chromium.org>
Reviewed-by: default avatarMichael Giuffrida <michaelpg@chromium.org>
Commit-Queue: Aga Wronska <agawronska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581260}
parent b6b61e7a
......@@ -11,6 +11,7 @@
#include "base/strings/stringprintf.h"
#include "base/task/post_task.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/login/startup_utils.h"
#include "chrome/browser/chromeos/login/wizard_controller.h"
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
#include "chrome/browser/chromeos/policy/device_local_account.h"
......@@ -229,9 +230,9 @@ void DemoSetupController::OnDeviceEnrolled(
weak_ptr_factory_.GetWeakPtr()));
return;
}
Reset();
if (!on_setup_success_.is_null())
std::move(on_setup_success_).Run();
StartupUtils::MarkDeviceRegistered(
base::BindOnce(&DemoSetupController::OnDeviceRegistered,
weak_ptr_factory_.GetWeakPtr()));
}
void DemoSetupController::OnMultipleLicensesAvailable(
......@@ -299,6 +300,13 @@ void DemoSetupController::OnDeviceLocalAccountPolicyLoaded(
device_local_account_policy_store_->Store(policy);
}
void DemoSetupController::OnDeviceRegistered() {
VLOG(1) << "Demo mode setup finished successfully.";
Reset();
if (!on_setup_success_.is_null())
std::move(on_setup_success_).Run();
}
void DemoSetupController::SetupFailed(const std::string& message,
DemoSetupError error) {
Reset();
......@@ -322,9 +330,9 @@ void DemoSetupController::Reset() {
void DemoSetupController::OnStoreLoaded(policy::CloudPolicyStore* store) {
DCHECK_EQ(store, device_local_account_policy_store_);
Reset();
if (!on_setup_success_.is_null())
std::move(on_setup_success_).Run();
StartupUtils::MarkDeviceRegistered(
base::BindOnce(&DemoSetupController::OnDeviceRegistered,
weak_ptr_factory_.GetWeakPtr()));
}
void DemoSetupController::OnStoreError(policy::CloudPolicyStore* store) {
......
......@@ -103,6 +103,10 @@ class DemoSetupController
// loaded.
void OnDeviceLocalAccountPolicyLoaded(base::Optional<std::string> blob);
// Called when device is marked as registered and the second part of OOBE flow
// is completed. This is the last step of demo mode setup flow.
void OnDeviceRegistered();
// Finish the flow with an error message.
void SetupFailed(const std::string& message, DemoSetupError error);
......
......@@ -15,6 +15,8 @@
#include "base/test/scoped_task_environment.h"
#include "chrome/browser/chromeos/login/demo_mode/demo_setup_test_utils.h"
#include "chrome/browser/chromeos/settings/device_settings_service.h"
#include "chrome/test/base/scoped_testing_local_state.h"
#include "chrome/test/base/testing_browser_process.h"
#include "chromeos/cryptohome/system_salt_getter.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "components/policy/core/common/cloud/mock_cloud_policy_store.h"
......@@ -81,7 +83,8 @@ class DemoSetupControllerTestHelper {
class DemoSetupControllerTest : public testing::Test {
protected:
DemoSetupControllerTest() = default;
DemoSetupControllerTest()
: testing_local_state_(TestingBrowserProcess::GetGlobal()) {}
~DemoSetupControllerTest() override = default;
void SetUp() override {
......@@ -103,6 +106,7 @@ class DemoSetupControllerTest : public testing::Test {
private:
base::test::ScopedTaskEnvironment scoped_task_environment_;
ScopedTestingLocalState testing_local_state_;
DISALLOW_COPY_AND_ASSIGN(DemoSetupControllerTest);
};
......
......@@ -506,6 +506,8 @@ IN_PROC_BROWSER_TEST_F(DemoSetupTest, OnlineSetupFlowSuccess) {
// needed to be able to check it reliably.
OobeScreenWaiter(OobeScreen::SCREEN_GAIA_SIGNIN).Wait();
EXPECT_TRUE(StartupUtils::IsOobeCompleted());
EXPECT_TRUE(StartupUtils::IsDeviceRegistered());
}
IN_PROC_BROWSER_TEST_F(DemoSetupTest, OnlineSetupFlowError) {
......@@ -554,6 +556,8 @@ IN_PROC_BROWSER_TEST_F(DemoSetupTest, OnlineSetupFlowError) {
// needed to be able to check it reliably.
WaitForScreenDialog(OobeScreen::SCREEN_OOBE_DEMO_SETUP,
DemoSetupDialog::kError);
EXPECT_FALSE(StartupUtils::IsOobeCompleted());
EXPECT_FALSE(StartupUtils::IsDeviceRegistered());
}
IN_PROC_BROWSER_TEST_F(DemoSetupTest, OfflineSetupFlowSuccess) {
......@@ -597,6 +601,8 @@ IN_PROC_BROWSER_TEST_F(DemoSetupTest, OfflineSetupFlowSuccess) {
// needed to be able to check it reliably.
OobeScreenWaiter(OobeScreen::SCREEN_GAIA_SIGNIN).Wait();
EXPECT_TRUE(StartupUtils::IsOobeCompleted());
EXPECT_TRUE(StartupUtils::IsDeviceRegistered());
}
IN_PROC_BROWSER_TEST_F(DemoSetupTest, OfflineSetupFlowError) {
......@@ -639,6 +645,9 @@ IN_PROC_BROWSER_TEST_F(DemoSetupTest, OfflineSetupFlowError) {
// needed to be able to check it reliably.
WaitForScreenDialog(OobeScreen::SCREEN_OOBE_DEMO_SETUP,
DemoSetupDialog::kError);
EXPECT_FALSE(StartupUtils::IsOobeCompleted());
EXPECT_FALSE(StartupUtils::IsDeviceRegistered());
}
IN_PROC_BROWSER_TEST_F(DemoSetupTest, NextDisabledOnNetworkScreen) {
......
......@@ -2358,6 +2358,7 @@ IN_PROC_BROWSER_TEST_F(WizardControllerDemoSetupTest, DemoSetupCanceled) {
CheckCurrentScreen(OobeScreen::SCREEN_OOBE_WELCOME);
EXPECT_FALSE(DemoSetupController::IsOobeDemoSetupFlowInProgress());
EXPECT_FALSE(StartupUtils::IsOobeCompleted());
}
IN_PROC_BROWSER_TEST_F(WizardControllerDemoSetupTest, DemoPreferencesCanceled) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment