21615bf9ded10675c4d58c0e9c5fb39a0ce96a67
[platform/framework/web/crosswalk.git] / src / xwalk / application / test / application_browsertest.cc
1 // Copyright (c) 2013 Intel Corporation. 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 "base/path_service.h"
6 #include "content/public/test/browser_test_utils.h"
7 #include "content/public/test/test_utils.h"
8 #include "net/base/net_util.h"
9 #include "xwalk/application/browser/application.h"
10 #include "xwalk/application/browser/application_system.h"
11 #include "xwalk/application/browser/application_service.h"
12 #include "xwalk/application/test/application_browsertest.h"
13 #include "xwalk/application/test/application_testapi.h"
14 #include "xwalk/extensions/browser/xwalk_extension_service.h"
15 #include "xwalk/runtime/browser/xwalk_runner.h"
16
17 using xwalk::application::Application;
18 using xwalk::application::ApplicationService;
19 using namespace xwalk::extensions;  // NOLINT
20
21 ApplicationBrowserTest::ApplicationBrowserTest()
22   : test_runner_(new ApiTestRunner()) {
23   PathService::Get(base::DIR_SOURCE_ROOT, &test_data_dir_);
24   test_data_dir_ = test_data_dir_
25     .Append(FILE_PATH_LITERAL("xwalk"))
26     .Append(FILE_PATH_LITERAL("application"))
27     .Append(FILE_PATH_LITERAL("test"))
28     .Append(FILE_PATH_LITERAL("data"));
29 }
30
31 ApplicationBrowserTest::~ApplicationBrowserTest() {
32 }
33
34 void ApplicationBrowserTest::SetUp() {
35   XWalkExtensionService::SetCreateUIThreadExtensionsCallbackForTesting(
36       base::Bind(&ApplicationBrowserTest::CreateExtensions,
37                  base::Unretained(this)));
38   InProcessBrowserTest::SetUp();
39 }
40
41 ApplicationService* ApplicationBrowserTest::application_sevice() const {
42   return xwalk::XWalkRunner::GetInstance()->app_system()
43       ->application_service();
44 }
45
46 void ApplicationBrowserTest::CreateExtensions(
47      XWalkExtensionVector* extensions) {
48   ApiTestExtension* extension = new ApiTestExtension;
49   extension->SetObserver(test_runner_.get());
50   extensions->push_back(extension);
51 }
52
53 IN_PROC_BROWSER_TEST_F(ApplicationBrowserTest, ApiTest) {
54   Application* app = application_sevice()->Launch(
55       test_data_dir_.Append(FILE_PATH_LITERAL("api")));
56   ASSERT_TRUE(app);
57   test_runner_->WaitForTestNotification();
58   EXPECT_EQ(test_runner_->GetTestsResult(), ApiTestRunner::PASS);
59 }