summaryrefslogtreecommitdiffstats
path: root/ppapi/tests
diff options
context:
space:
mode:
authorbbudge@chromium.org <bbudge@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-17 14:24:30 +0000
committerbbudge@chromium.org <bbudge@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-17 14:24:30 +0000
commit08610101320e903c398cea854bd8ad66e361aebc (patch)
tree38bb90bf10119a519a68a1a6f0955d0c8910c1f9 /ppapi/tests
parent5ccea8893320e6b6ccf422179ec50cee08f15a7f (diff)
downloadchromium_src-08610101320e903c398cea854bd8ad66e361aebc.zip
chromium_src-08610101320e903c398cea854bd8ad66e361aebc.tar.gz
chromium_src-08610101320e903c398cea854bd8ad66e361aebc.tar.bz2
Add TestingInstance::ExecuteScript method which posts a message that the test page
can eval(). Change InputEvent and PostMessage tests to use this. Add proxy for PPB_Testing_Dev::SimulateInputEvent function. BUG=NONE TEST=ui_tests Review URL: http://codereview.chromium.org/8920005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114924 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/tests')
-rw-r--r--ppapi/tests/test_case.html10
-rw-r--r--ppapi/tests/test_input_event.cc7
-rw-r--r--ppapi/tests/test_post_message.cc28
-rw-r--r--ppapi/tests/testing_instance.cc6
-rw-r--r--ppapi/tests/testing_instance.h3
5 files changed, 33 insertions, 21 deletions
diff --git a/ppapi/tests/test_case.html b/ppapi/tests/test_case.html
index 43b24a5..7e8630e 100644
--- a/ppapi/tests/test_case.html
+++ b/ppapi/tests/test_case.html
@@ -78,6 +78,7 @@ function ExtractSearchParameter(name) {
// - DidExecuteTests
// - LogHTML
// - SetCookie
+// - EvalScript
// The second item is the verbatim message_contents.
function ParseTestingMessage(message_data) {
if (typeof(message_data)!='string')
@@ -107,6 +108,13 @@ function SetCookie(key_value_string) {
window.document.cookie = key_value_string + "; path=/";
}
+function EvalScript(script) {
+ try {
+ eval(script);
+ } catch(ex) {
+ }
+}
+
function IsTestingMessage(message_data) {
return (ParseTestingMessage(message_data) != undefined);
}
@@ -124,6 +132,8 @@ function handleTestingMessage(message_event) {
LogHTML(contents);
else if (type === "SetCookie")
SetCookie(contents);
+ else if (type === "EvalScript")
+ EvalScript(contents);
}
}
diff --git a/ppapi/tests/test_input_event.cc b/ppapi/tests/test_input_event.cc
index 49526db..cdd4939 100644
--- a/ppapi/tests/test_input_event.cc
+++ b/ppapi/tests/test_input_event.cc
@@ -52,8 +52,7 @@ TestInputEvent::~TestInputEvent() {
"plugin.removeEventListener('message',"
" plugin.wait_for_messages_handler);"
"delete plugin.wait_for_messages_handler;";
- pp::Var exception;
- instance_->ExecuteScript(js_code, &exception);
+ instance_->EvalScript(js_code);
}
bool TestInputEvent::Init() {
@@ -94,9 +93,7 @@ bool TestInputEvent::Init() {
"plugin.addEventListener('message', wait_for_messages_handler);"
// Stash it on the plugin so we can remove it in the destructor.
"plugin.wait_for_messages_handler = wait_for_messages_handler;";
- pp::Var exception;
- instance_->ExecuteScript(js_code, &exception);
- success = success && exception.is_undefined();
+ instance_->EvalScript(js_code);
return success;
}
diff --git a/ppapi/tests/test_post_message.cc b/ppapi/tests/test_post_message.cc
index a86f310..665dad7 100644
--- a/ppapi/tests/test_post_message.cc
+++ b/ppapi/tests/test_post_message.cc
@@ -65,8 +65,7 @@ TestPostMessage::~TestPostMessage() {
"plugin.removeEventListener('message',"
" plugin.wait_for_messages_handler);"
"delete plugin.wait_for_messages_handler;";
- pp::Var exception;
- instance_->ExecuteScript(js_code, &exception);
+ instance_->EvalScript(js_code);
}
bool TestPostMessage::Init() {
@@ -90,9 +89,7 @@ bool TestPostMessage::Init() {
"plugin.addEventListener('message', wait_for_messages_handler);"
// Stash it on the plugin so we can remove it in the destructor.
"plugin.wait_for_messages_handler = wait_for_messages_handler;";
- pp::Var exception;
- instance_->ExecuteScript(js_code, &exception);
- success = success && exception.is_undefined();
+ instance_->EvalScript(js_code);
// Set up the JavaScript message event listener to echo the data part of the
// message event back to us.
@@ -149,20 +146,19 @@ bool TestPostMessage::AddEchoingListener(const std::string& expression) {
// ClearListeners()).
"if (!plugin.eventListeners) plugin.eventListeners = [];"
"plugin.eventListeners.push(message_handler);";
- pp::Var exception;
- instance_->ExecuteScript(js_code, &exception);
- return exception.is_undefined();
+ instance_->EvalScript(js_code);
+ return true;
}
bool TestPostMessage::ClearListeners() {
- std::string js_code(
- "var plugin = document.getElementById('plugin');"
- "while (plugin.eventListeners.length) {"
- " plugin.removeEventListener('message', plugin.eventListeners.pop());"
- "}");
- pp::Var exception;
- instance_->ExecuteScript(js_code, &exception);
- return(exception.is_undefined());
+ std::string js_code;
+ js_code += "var plugin = document.getElementById('plugin');"
+ "while (plugin.eventListeners.length) {"
+ " plugin.removeEventListener('message',"
+ " plugin.eventListeners.pop());"
+ "}";
+ instance_->EvalScript(js_code);
+ return true;
}
int TestPostMessage::WaitForMessages() {
diff --git a/ppapi/tests/testing_instance.cc b/ppapi/tests/testing_instance.cc
index 056477d..88ef424 100644
--- a/ppapi/tests/testing_instance.cc
+++ b/ppapi/tests/testing_instance.cc
@@ -101,6 +101,12 @@ bool TestingInstance::HandleInputEvent(const pp::InputEvent& event) {
return false;
}
+void TestingInstance::EvalScript(const std::string& script) {
+ std::string message("TESTING_MESSAGE:EvalScript:");
+ message.append(script);
+ PostMessage(pp::Var(message));
+}
+
void TestingInstance::LogTest(const std::string& test_name,
const std::string& error_message) {
// Tell the browser we're still working.
diff --git a/ppapi/tests/testing_instance.h b/ppapi/tests/testing_instance.h
index 8f6b7b1..397c1c7 100644
--- a/ppapi/tests/testing_instance.h
+++ b/ppapi/tests/testing_instance.h
@@ -83,6 +83,9 @@ pp::InstancePrivate {
return protocol_;
}
+ // Posts a message to the test page to eval() the script.
+ void EvalScript(const std::string& script);
+
private:
void ExecuteTests(int32_t unused);