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.
5 #include "base/path_service.h"
6 #include "base/strings/utf_string_conversions.h"
7 #include "content/public/test/browser_test_utils.h"
8 #include "content/public/test/test_utils.h"
9 #include "net/base/filename_util.h"
10 #include "xwalk/extensions/browser/xwalk_extension_service.h"
11 #include "xwalk/extensions/common/xwalk_extension.h"
12 #include "xwalk/runtime/browser/runtime.h"
13 #include "xwalk/test/base/in_process_browser_test.h"
14 #include "xwalk/test/base/xwalk_test_utils.h"
16 using namespace xwalk::extensions; // NOLINT
21 class SysAppsRawSocketTestInstance : public XWalkExtensionInstance {
23 SysAppsRawSocketTestInstance() {}
25 void HandleMessage(scoped_ptr<base::Value> msg) override {}
28 class SysAppsRawSocketTestExtension : public XWalkExtension {
30 SysAppsRawSocketTestExtension() {
31 set_name("sysapps_raw_socket_test");
33 "exports.v8tools = requireNative('v8tools');");
36 XWalkExtensionInstance* CreateInstance() override {
37 return new SysAppsRawSocketTestInstance();
41 class SysAppsRawSocketTest : public InProcessBrowserTest {
43 virtual void SetUp() {
44 XWalkExtensionService::SetCreateUIThreadExtensionsCallbackForTesting(
45 base::Bind(&SysAppsRawSocketTest::CreateExtensions,
46 base::Unretained(this)));
47 InProcessBrowserTest::SetUp();
50 void CreateExtensions(XWalkExtensionVector* extensions) {
51 extensions->push_back(new SysAppsRawSocketTestExtension);
57 IN_PROC_BROWSER_TEST_F(SysAppsRawSocketTest, SysAppsRawSocket) {
58 const base::string16 passString = base::ASCIIToUTF16("Pass");
59 const base::string16 failString = base::ASCIIToUTF16("Fail");
61 Runtime* runtime = CreateRuntime();
62 content::TitleWatcher title_watcher(runtime->web_contents(), passString);
63 title_watcher.AlsoWaitForTitle(failString);
65 base::FilePath test_file;
66 PathService::Get(base::DIR_SOURCE_ROOT, &test_file);
68 .Append(FILE_PATH_LITERAL("xwalk"))
69 .Append(FILE_PATH_LITERAL("sysapps"))
70 .Append(FILE_PATH_LITERAL("raw_socket"))
71 .Append(FILE_PATH_LITERAL("raw_socket_api_browsertest.html"));
73 xwalk_test_utils::NavigateToURL(runtime, net::FilePathToFileURL(test_file));
74 EXPECT_EQ(passString, title_watcher.WaitAndGetTitle());