| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Tests for CppBoundClass, in conjunction with CppBindingExample. Binds | 5 // Tests for CppBoundClass, in conjunction with CppBindingExample. Binds |
| 6 // a CppBindingExample class into JavaScript in a custom test shell and tests | 6 // a CppBindingExample class into JavaScript in a custom test shell and tests |
| 7 // the binding from the outside by loading JS into the shell. | 7 // the binding from the outside by loading JS into the shell. |
| 8 | 8 |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/message_loop.h" | 11 #include "base/message_loop.h" |
| 12 #include "base/string_util.h" |
| 12 #include "third_party/WebKit/WebKit/chromium/public/WebData.h" | 13 #include "third_party/WebKit/WebKit/chromium/public/WebData.h" |
| 13 #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" | 14 #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" |
| 14 #include "third_party/WebKit/WebKit/chromium/public/WebURL.h" | 15 #include "third_party/WebKit/WebKit/chromium/public/WebURL.h" |
| 15 #include "third_party/WebKit/WebKit/chromium/public/WebView.h" | 16 #include "third_party/WebKit/WebKit/chromium/public/WebView.h" |
| 16 #include "webkit/glue/cpp_binding_example.h" | 17 #include "webkit/glue/cpp_binding_example.h" |
| 17 #include "webkit/glue/webkit_glue.h" | 18 #include "webkit/glue/webkit_glue.h" |
| 18 #include "webkit/tools/test_shell/test_shell_test.h" | 19 #include "webkit/tools/test_shell/test_shell_test.h" |
| 19 | 20 |
| 20 using WebKit::WebFrame; | 21 using WebKit::WebFrame; |
| 21 | 22 |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 // The base URL doesn't matter. | 107 // The base URL doesn't matter. |
| 107 webframe_->loadHTMLString(html, GURL("about:blank")); | 108 webframe_->loadHTMLString(html, GURL("about:blank")); |
| 108 | 109 |
| 109 test_shell_->WaitTestFinished(); | 110 test_shell_->WaitTestFinished(); |
| 110 } | 111 } |
| 111 | 112 |
| 112 // Executes the specified JavaScript and checks to be sure that the resulting | 113 // Executes the specified JavaScript and checks to be sure that the resulting |
| 113 // document text is exactly "SUCCESS". | 114 // document text is exactly "SUCCESS". |
| 114 void CheckJavaScriptSuccess(const std::string& javascript) { | 115 void CheckJavaScriptSuccess(const std::string& javascript) { |
| 115 ExecuteJavaScript(javascript); | 116 ExecuteJavaScript(javascript); |
| 116 EXPECT_EQ(L"SUCCESS", webkit_glue::DumpDocumentText(webframe_)); | 117 EXPECT_EQ("SUCCESS", |
| 118 UTF16ToASCII(webkit_glue::DumpDocumentText(webframe_))); |
| 117 } | 119 } |
| 118 | 120 |
| 119 // Executes the specified JavaScript and checks that the resulting document | 121 // Executes the specified JavaScript and checks that the resulting document |
| 120 // text is empty. | 122 // text is empty. |
| 121 void CheckJavaScriptFailure(const std::string& javascript) { | 123 void CheckJavaScriptFailure(const std::string& javascript) { |
| 122 ExecuteJavaScript(javascript); | 124 ExecuteJavaScript(javascript); |
| 123 EXPECT_EQ(L"", webkit_glue::DumpDocumentText(webframe_)); | 125 EXPECT_EQ("", UTF16ToASCII(webkit_glue::DumpDocumentText(webframe_))); |
| 124 } | 126 } |
| 125 | 127 |
| 126 // Constructs a JavaScript snippet that evaluates and compares the left and | 128 // Constructs a JavaScript snippet that evaluates and compares the left and |
| 127 // right expressions, printing "SUCCESS" to the page if they are equal and | 129 // right expressions, printing "SUCCESS" to the page if they are equal and |
| 128 // printing their actual values if they are not. Any strings in the | 130 // printing their actual values if they are not. Any strings in the |
| 129 // expressions should be enclosed in single quotes, and no double quotes | 131 // expressions should be enclosed in single quotes, and no double quotes |
| 130 // should appear in either expression (even if escaped). (If a test case | 132 // should appear in either expression (even if escaped). (If a test case |
| 131 // is added that needs fancier quoting, Json::valueToQuotedString could be | 133 // is added that needs fancier quoting, Json::valueToQuotedString could be |
| 132 // used here. For now, it's not worth adding the dependency.) | 134 // used here. For now, it's not worth adding the dependency.) |
| 133 std::string BuildJSCondition(std::string left, std::string right) { | 135 std::string BuildJSCondition(std::string left, std::string right) { |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 | 281 |
| 280 // Ensures existent methods can be invoked successfully when the fallback method | 282 // Ensures existent methods can be invoked successfully when the fallback method |
| 281 // is used | 283 // is used |
| 282 TEST_F(CppBoundClassWithFallbackMethodTest, | 284 TEST_F(CppBoundClassWithFallbackMethodTest, |
| 283 InvokeExistentMethodsWithFallback) { | 285 InvokeExistentMethodsWithFallback) { |
| 284 std::string js = BuildJSCondition("example.echoValue(34)", "34"); | 286 std::string js = BuildJSCondition("example.echoValue(34)", "34"); |
| 285 CheckJavaScriptSuccess(js); | 287 CheckJavaScriptSuccess(js); |
| 286 } | 288 } |
| 287 | 289 |
| 288 } // namespace | 290 } // namespace |
| OLD | NEW |