blob: 53aa84451748d2e8c0cebe452b09041e99adefd7 [file] [log] [blame]
// Copyright 2021 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 "components/arc/dark_theme/arc_dark_theme_bridge.h"
#include <memory>
#include "components/arc/arc_service_manager.h"
#include "components/arc/session/arc_bridge_service.h"
#include "components/arc/test/connection_holder_util.h"
#include "components/arc/test/fake_dark_theme_instance.h"
#include "components/arc/test/test_browser_context.h"
#include "content/public/test/browser_task_environment.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace arc {
namespace {
class ArcDarkThemeBridgeTest : public testing::Test {
protected:
ArcDarkThemeBridgeTest()
: task_environment_(content::BrowserTaskEnvironment::IO_MAINLOOP),
bridge_(ArcDarkThemeBridge::GetForBrowserContextForTesting(&context_)) {
ArcServiceManager::Get()->arc_bridge_service()->dark_theme()->SetInstance(
&dark_theme_instance_);
WaitForInstanceReady(
ArcServiceManager::Get()->arc_bridge_service()->dark_theme());
}
~ArcDarkThemeBridgeTest() override {
ArcServiceManager::Get()->arc_bridge_service()->dark_theme()->CloseInstance(
&dark_theme_instance_);
bridge_->Shutdown();
}
ArcDarkThemeBridgeTest(const ArcDarkThemeBridge&) = delete;
ArcDarkThemeBridgeTest& operator=(const ArcDarkThemeBridge&) = delete;
content::BrowserTaskEnvironment task_environment_;
ArcServiceManager arc_service_manager_;
TestBrowserContext context_;
FakeDarkThemeInstance dark_theme_instance_;
ArcDarkThemeBridge* const bridge_;
};
TEST_F(ArcDarkThemeBridgeTest, ConstructDestruct) {}
TEST_F(ArcDarkThemeBridgeTest, SendDeviceDarkThemeState) {
EXPECT_FALSE(dark_theme_instance_.dark_theme_status());
bridge_->SendDeviceDarkThemeStateForTesting(true);
EXPECT_TRUE(dark_theme_instance_.dark_theme_status());
bridge_->SendDeviceDarkThemeStateForTesting(false);
EXPECT_FALSE(dark_theme_instance_.dark_theme_status());
}
} // namespace
} // namespace arc