1 // Copyright 2014 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.
5 #include "mojo/runner/android/background_application_loader.h"
7 #include "mojo/application/public/interfaces/application.mojom.h"
8 #include "testing/gtest/include/gtest/gtest.h"
14 class DummyLoader
: public shell::ApplicationLoader
{
16 DummyLoader() : simulate_app_quit_(true) {}
17 ~DummyLoader() override
{}
19 // shell::ApplicationLoader overrides:
20 void Load(const GURL
& url
,
21 InterfaceRequest
<Application
> application_request
) override
{
22 if (simulate_app_quit_
)
23 base::MessageLoop::current()->Quit();
26 void DontSimulateAppQuit() { simulate_app_quit_
= false; }
29 bool simulate_app_quit_
;
32 // Tests that the loader can start and stop gracefully.
33 TEST(BackgroundApplicationLoaderTest
, StartStop
) {
34 scoped_ptr
<shell::ApplicationLoader
> real_loader(new DummyLoader());
35 BackgroundApplicationLoader
loader(real_loader
.Pass(), "test",
36 base::MessageLoop::TYPE_DEFAULT
);
39 // Tests that the loader can load a service that is well behaved (quits
41 TEST(BackgroundApplicationLoaderTest
, Load
) {
42 scoped_ptr
<shell::ApplicationLoader
> real_loader(new DummyLoader());
43 BackgroundApplicationLoader
loader(real_loader
.Pass(), "test",
44 base::MessageLoop::TYPE_DEFAULT
);
45 ApplicationPtr application
;
46 loader
.Load(GURL(), GetProxy(&application
));