Chromium Code Reviews| Index: chrome/browser/chromeos/login/bluetooth_host_pairing_browsertest.cc |
| diff --git a/chrome/browser/chromeos/login/bluetooth_host_pairing_browsertest.cc b/chrome/browser/chromeos/login/bluetooth_host_pairing_browsertest.cc |
| index d47b062c2973813fb9eded03b863257b5860f5ea..1afe36f1b3cf5b88023df0c1237f90062d4628e6 100644 |
| --- a/chrome/browser/chromeos/login/bluetooth_host_pairing_browsertest.cc |
| +++ b/chrome/browser/chromeos/login/bluetooth_host_pairing_browsertest.cc |
| @@ -45,33 +45,36 @@ class TestDelegate |
| } // namespace |
| -class BluetoothHostPairingTest : public OobeBaseTest { |
| +// This is the class to simulate the OOBE process for devices that don't have |
| +// sufficient input, i.e., the first screen of OOBE is the HID detection screen. |
| +// The device will put itself in Bluetooth discoverable mode. |
| +class BluetoothHostPairingTestNoInput : public OobeBaseTest { |
|
achuithb
2016/10/05 22:24:10
Isn't BluetoothHostPairingNoInputTest better? I th
xdai1
2016/10/05 23:57:29
Done.
|
| public: |
| using InputDeviceInfo = device::InputServiceLinux::InputDeviceInfo; |
| - BluetoothHostPairingTest() { |
| + BluetoothHostPairingTestNoInput() { |
| InputServiceProxy::SetThreadIdForTesting(content::BrowserThread::UI); |
| input_service_linux_.reset(new device::FakeInputServiceLinux); |
| device::InputServiceLinux::SetForTesting(input_service_linux_.get()); |
| - |
| - AddUsbMouse(); |
| - AddUsbKeyboard(); |
| } |
| - ~BluetoothHostPairingTest() override {} |
| + ~BluetoothHostPairingTestNoInput() override {} |
| // OobeBaseTest override: |
| void SetUpOnMainThread() override { |
| OobeBaseTest::SetUpOnMainThread(); |
| delegate_.reset(new TestDelegate); |
| - controller()->SetDelegateForTesting(delegate_.get()); |
| - bluetooth_adapter_ = controller()->GetAdapterForTesting(); |
| + if (controller()) { |
| + controller()->SetDelegateForTesting(delegate_.get()); |
| + bluetooth_adapter_ = controller()->GetAdapterForTesting(); |
| + } |
| } |
| pairing_chromeos::BluetoothHostPairingController* controller() { |
| WizardController* wizard_controller = |
|
achuithb
2016/10/05 22:24:10
You could just get rid of this and inlign below.
xdai1
2016/10/05 23:57:29
Done.
|
| WizardController::default_controller(); |
| - return wizard_controller->GetSharkConnectionListenerForTesting() |
| - ->GetControllerForTesting(); |
| + pairing_chromeos::SharkConnectionListener* shark_listener = |
| + wizard_controller->GetSharkConnectionListenerForTesting(); |
| + return shark_listener ? shark_listener->GetControllerForTesting() : nullptr; |
| } |
| device::BluetoothAdapter* bluetooth_adapter() { |
| @@ -112,14 +115,15 @@ class BluetoothHostPairingTest : public OobeBaseTest { |
| scoped_refptr<device::BluetoothAdapter> bluetooth_adapter_; |
| std::unique_ptr<TestDelegate> delegate_; |
| - DISALLOW_COPY_AND_ASSIGN(BluetoothHostPairingTest); |
| + DISALLOW_COPY_AND_ASSIGN(BluetoothHostPairingTestNoInput); |
| }; |
| -// Test that in normal user OOBE login flow, if there is no Bluetooth device |
| -// connected, the Bluetooth adapter should be disabled when OOBE reaches login |
| -// screen (which means OOBE has been completed). |
| -IN_PROC_BROWSER_TEST_F(BluetoothHostPairingTest, NoBluetoothDeviceConnected) { |
| - OobeScreenWaiter(OobeScreen::SCREEN_OOBE_NETWORK).Wait(); |
| +// Test that in normal user OOBE login flow for devices lacking input devices, |
| +// if there is no Bluetooth device connected, the Bluetooth adapter should be |
| +// disabled when OOBE reaches login screen (which means OOBE has been completed) |
| +IN_PROC_BROWSER_TEST_F(BluetoothHostPairingTestNoInput, |
| + NoBluetoothDeviceConnected) { |
| + OobeScreenWaiter(OobeScreen::SCREEN_OOBE_HID_DETECTION).Wait(); |
| EXPECT_EQ(bluetooth_adapter()->IsPowered(), true); |
| WizardController::default_controller()->SkipToLoginForTesting( |
| LoginScreenContext()); |
| @@ -128,10 +132,12 @@ IN_PROC_BROWSER_TEST_F(BluetoothHostPairingTest, NoBluetoothDeviceConnected) { |
| EXPECT_EQ(bluetooth_adapter()->IsPowered(), false); |
| } |
| -// Test that in normal user OOBE login flow, if there is any Bluetooth device |
| -// connected, the Bluetooth adapter should not be disabled after OOBE completes. |
| -IN_PROC_BROWSER_TEST_F(BluetoothHostPairingTest, BluetoothDeviceConnected) { |
| - OobeScreenWaiter(OobeScreen::SCREEN_OOBE_NETWORK).Wait(); |
| +// Test that in normal user OOBE login flow for devices lacking input devices, |
| +// if there is any Bluetooth device connected, the Bluetooth adapter should not |
| +// be disabled after OOBE completes. |
| +IN_PROC_BROWSER_TEST_F(BluetoothHostPairingTestNoInput, |
| + BluetoothDeviceConnected) { |
| + OobeScreenWaiter(OobeScreen::SCREEN_OOBE_HID_DETECTION).Wait(); |
| AddBluetoothMouse(); |
| EXPECT_EQ(bluetooth_adapter()->IsPowered(), true); |
| WizardController::default_controller()->SkipToLoginForTesting( |
| @@ -141,4 +147,29 @@ IN_PROC_BROWSER_TEST_F(BluetoothHostPairingTest, BluetoothDeviceConnected) { |
| EXPECT_EQ(bluetooth_adapter()->IsPowered(), true); |
| } |
| +// This is the class to simulate the OOBE process for devices that have |
| +// sufficient input, i.e., the first screen of OOBE is the network screen. |
| +// The device will not put itself in Bluetooth discoverable mode until the user |
| +// manually trigger it using the proper accelerator. |
| +class BluetoothHostPairingTestWithInput |
|
achuithb
2016/10/05 22:24:10
Test last
xdai1
2016/10/05 23:57:29
Done.
|
| + : public BluetoothHostPairingTestNoInput { |
| + public: |
| + BluetoothHostPairingTestWithInput() { |
| + AddUsbMouse(); |
| + AddUsbKeyboard(); |
| + } |
| + ~BluetoothHostPairingTestWithInput() override {} |
| + |
| + DISALLOW_COPY_AND_ASSIGN(BluetoothHostPairingTestWithInput); |
|
achuithb
2016/10/05 22:24:10
This must be private
xdai1
2016/10/05 23:57:29
Done.
|
| +}; |
| + |
| +// Test that in normal user OOBE login flow for devices that have input devices, |
| +// the Bluetooth is disabled by default. |
| +IN_PROC_BROWSER_TEST_F(BluetoothHostPairingTestWithInput, |
| + BluetoothDisableByDefault) { |
| + OobeScreenWaiter(OobeScreen::SCREEN_OOBE_NETWORK).Wait(); |
| + EXPECT_FALSE(controller()); |
| + EXPECT_FALSE(bluetooth_adapter()); |
| +} |
| + |
| } // namespace chromeos |