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 "xwalk/extensions/test/xwalk_extensions_test_base.h"
7 #include "content/public/test/browser_test_utils.h"
8 #include "content/public/test/test_utils.h"
9 #include "xwalk/extensions/common/xwalk_extension.h"
10 #include "xwalk/runtime/browser/runtime.h"
11 #include "xwalk/test/base/in_process_browser_test.h"
12 #include "xwalk/test/base/xwalk_test_utils.h"
14 using namespace xwalk::extensions; // NOLINT
16 class TestExportObjectExtensionInstance : public XWalkExtensionInstance {
18 TestExportObjectExtensionInstance() {}
20 virtual void HandleMessage(scoped_ptr<base::Value> msg) OVERRIDE {}
23 class TestExportObjectExtension : public XWalkExtension {
25 TestExportObjectExtension()
27 set_name("export_object");
29 "exports.data = 54321");
32 virtual XWalkExtensionInstance* CreateInstance() OVERRIDE {
33 return new TestExportObjectExtensionInstance();
37 class TestExportCustomObjectExtension : public XWalkExtension {
39 TestExportCustomObjectExtension()
41 set_name("export_custom_object");
43 "var ExportObject = function(data) {"
46 "exports = new ExportObject(12345)");
49 virtual XWalkExtensionInstance* CreateInstance() OVERRIDE {
50 return new TestExportObjectExtensionInstance();
54 class XWalkExtensionsExportObjectTest : public XWalkExtensionsTestBase {
56 virtual void CreateExtensionsForUIThread(
57 XWalkExtensionVector* extensions) OVERRIDE {
58 extensions->push_back(new TestExportObjectExtension);
59 extensions->push_back(new TestExportCustomObjectExtension);
63 IN_PROC_BROWSER_TEST_F(XWalkExtensionsExportObjectTest,
65 content::RunAllPendingInMessageLoop();
66 GURL url = GetExtensionsTestURL(base::FilePath(),
67 base::FilePath().AppendASCII("test_export_object.html"));
69 content::TitleWatcher title_watcher(runtime()->web_contents(), kPassString);
70 title_watcher.AlsoWaitForTitle(kFailString);
71 xwalk_test_utils::NavigateToURL(runtime(), url);
73 EXPECT_EQ(kPassString, title_watcher.WaitAndGetTitle());