blob: 12203e4b7ca21262acdf3930400a114ad1f2be73 [file] [log] [blame]
// Copyright 2016 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 "services/ui/ws/window_server_service_test_base.h"
#include <memory>
#include "base/command_line.h"
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "services/service_manager/public/cpp/service.h"
#include "services/service_manager/public/cpp/service_test.h"
#include "services/ui/common/switches.h"
#include "ui/gl/gl_switches.h"
namespace ui {
namespace {
const char kTestAppName[] = "mus_ws_unittests_app";
class WindowServerServiceTestClient
: public service_manager::test::ServiceTestClient {
public:
explicit WindowServerServiceTestClient(WindowServerServiceTestBase* test)
: ServiceTestClient(test), test_(test) {}
~WindowServerServiceTestClient() override {}
private:
// service_manager::test::ServiceTestClient:
bool OnConnect(const service_manager::ServiceInfo& remote_info,
service_manager::InterfaceRegistry* registry) override {
return test_->OnConnect(remote_info.identity, registry);
}
WindowServerServiceTestBase* test_;
DISALLOW_COPY_AND_ASSIGN(WindowServerServiceTestClient);
};
void EnsureCommandLineSwitch(const std::string& name) {
base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
if (!cmd_line->HasSwitch(name))
cmd_line->AppendSwitch(name);
}
} // namespace
WindowServerServiceTestBase::WindowServerServiceTestBase()
: ServiceTest(kTestAppName) {
EnsureCommandLineSwitch(switches::kUseTestConfig);
EnsureCommandLineSwitch(::switches::kOverrideUseGLWithOSMesaForTests);
}
WindowServerServiceTestBase::~WindowServerServiceTestBase() {}
std::unique_ptr<service_manager::Service>
WindowServerServiceTestBase::CreateService() {
return base::MakeUnique<WindowServerServiceTestClient>(this);
}
} // namespace ui