summaryrefslogtreecommitdiffstats
path: root/ppapi/tests/test_post_message.h
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/tests/test_post_message.h')
-rw-r--r--ppapi/tests/test_post_message.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/ppapi/tests/test_post_message.h b/ppapi/tests/test_post_message.h
new file mode 100644
index 0000000..1b841c8
--- /dev/null
+++ b/ppapi/tests/test_post_message.h
@@ -0,0 +1,53 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_TESTS_TEST_POST_MESSAGE_H_
+#define PPAPI_TESTS_TEST_POST_MESSAGE_H_
+
+#include <string>
+#include <vector>
+
+#include "ppapi/tests/test_case.h"
+
+struct PPB_Testing_Dev;
+
+class TestPostMessage : public TestCase {
+ public:
+ explicit TestPostMessage(TestingInstance* instance)
+ : TestCase(instance), testing_interface_(NULL) {}
+
+ private:
+ // TestCase implementation.
+ virtual bool Init();
+ virtual void RunTest();
+
+ // A handler for JS->Native calls to postMessage. Simply pushes
+ // the given value to the back of message_data_
+ virtual void HandleMessage(const pp::Var& message_data);
+
+ // Set the JavaScript onmessage handler to echo back some expression based on
+ // the message_event by passing it to postMessage. Returns true on success,
+ // false on failure.
+ bool MakeOnMessageEcho(const std::string& expression);
+
+ // Test some basic functionality; make sure we can send data successfully
+ // in both directions.
+ std::string TestSendingData();
+
+ // Test the MessageEvent object that JavaScript received to make sure it is
+ // of the right type and has all the expected fields.
+ std::string TestMessageEvent();
+
+ // Test sending a message when no handler exists, make sure nothing happens.
+ std::string TestNoHandler();
+
+ const PPB_Testing_Dev* testing_interface_;
+
+ // This is used to store pp::Var objects we receive via a call to
+ // HandleMessage.
+ std::vector<pp::Var> message_data_;
+};
+
+#endif // PPAPI_TESTS_TEST_POST_MESSAGE_H_
+