Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Side by Side Diff: services/shell/public/cpp/lib/service_test.cc

Issue 2419723002: Move services/shell to services/service_manager (Closed)
Patch Set: rebase Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « services/shell/public/cpp/lib/service_runner.cc ('k') | services/shell/public/cpp/names.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "services/shell/public/cpp/service_test.h"
6
7 #include "base/memory/ptr_util.h"
8 #include "base/message_loop/message_loop.h"
9 #include "base/run_loop.h"
10 #include "services/shell/background/background_shell.h"
11 #include "services/shell/public/cpp/service.h"
12
13 namespace shell {
14 namespace test {
15
16 ServiceTestClient::ServiceTestClient(ServiceTest* test) : test_(test) {}
17 ServiceTestClient::~ServiceTestClient() {}
18
19 void ServiceTestClient::OnStart(const Identity& identity) {
20 test_->OnStartCalled(connector(), identity.name(),
21 identity.user_id());
22 }
23
24 ServiceTest::ServiceTest() {}
25 ServiceTest::ServiceTest(const std::string& test_name)
26 : test_name_(test_name) {}
27 ServiceTest::~ServiceTest() {}
28
29 void ServiceTest::InitTestName(const std::string& test_name) {
30 DCHECK(test_name_.empty());
31 test_name_ = test_name;
32 }
33
34 std::unique_ptr<Service> ServiceTest::CreateService() {
35 return base::WrapUnique(new ServiceTestClient(this));
36 }
37
38 std::unique_ptr<base::MessageLoop> ServiceTest::CreateMessageLoop() {
39 return base::WrapUnique(new base::MessageLoop);
40 }
41
42 void ServiceTest::OnStartCalled(Connector* connector,
43 const std::string& name,
44 const std::string& user_id) {
45 DCHECK_EQ(connector_, connector);
46 initialize_name_ = name;
47 initialize_userid_ = user_id;
48 initialize_called_.Run();
49 }
50
51 void ServiceTest::SetUp() {
52 service_ = CreateService();
53 message_loop_ = CreateMessageLoop();
54 background_shell_.reset(new shell::BackgroundShell);
55 background_shell_->Init(nullptr);
56
57 // Create the shell connection. We don't proceed until we get our
58 // Service's OnStart() method is called.
59 base::RunLoop run_loop;
60 base::MessageLoop::ScopedNestableTaskAllower allow(
61 base::MessageLoop::current());
62 initialize_called_ = run_loop.QuitClosure();
63
64 service_->set_context(base::MakeUnique<ServiceContext>(
65 service_.get(), background_shell_->CreateServiceRequest(test_name_)));
66 connector_ = service_->connector();
67
68 run_loop.Run();
69 }
70
71 void ServiceTest::TearDown() {
72 background_shell_.reset();
73 message_loop_.reset();
74 service_.reset();
75 }
76
77 } // namespace test
78 } // namespace shell
OLDNEW
« no previous file with comments | « services/shell/public/cpp/lib/service_runner.cc ('k') | services/shell/public/cpp/names.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698