Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Unified Diff: ppapi/tests/test_flash_clipboard.cc

Issue 11225021: Move flash clipboard to the new proxy and add custom format support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ppapi/tests/test_flash_clipboard.cc
diff --git a/ppapi/tests/test_flash_clipboard.cc b/ppapi/tests/test_flash_clipboard.cc
index 034a08efdec7fb29e7614823f03af27f16012beb..87718cef07260aa61a0891eac28d5b5d66c49f76 100644
--- a/ppapi/tests/test_flash_clipboard.cc
+++ b/ppapi/tests/test_flash_clipboard.cc
@@ -31,14 +31,14 @@ void TestFlashClipboard::RunTests(const std::string& filter) {
RUN_TEST(ReadWritePlainText, filter);
RUN_TEST(ReadWriteHTML, filter);
RUN_TEST(ReadWriteRTF, filter);
+ RUN_TEST(ReadWriteCustomData, filter);
RUN_TEST(ReadWriteMultipleFormats, filter);
RUN_TEST(Clear, filter);
RUN_TEST(InvalidFormat, filter);
+ RUN_TEST(RegisterCustomFormat, filter);
}
-bool TestFlashClipboard::ReadStringVar(
- PP_Flash_Clipboard_Format format,
- std::string* result) {
+bool TestFlashClipboard::ReadStringVar(uint32_t format, std::string* result) {
pp::Var text;
bool success = pp::flash::Clipboard::ReadData(
instance_,
@@ -52,9 +52,9 @@ bool TestFlashClipboard::ReadStringVar(
return false;
}
-bool TestFlashClipboard::WriteStringVar(PP_Flash_Clipboard_Format format,
+bool TestFlashClipboard::WriteStringVar(uint32_t format,
const std::string& text) {
- std::vector<PP_Flash_Clipboard_Format> formats_vector(1, format);
+ std::vector<uint32_t> formats_vector(1, format);
std::vector<pp::Var> data_vector(1, pp::Var(text));
bool success = pp::flash::Clipboard::WriteData(
instance_,
@@ -64,9 +64,8 @@ bool TestFlashClipboard::WriteStringVar(PP_Flash_Clipboard_Format format,
return success;
}
-bool TestFlashClipboard::IsFormatAvailableMatches(
- PP_Flash_Clipboard_Format format,
- bool expected) {
+bool TestFlashClipboard::IsFormatAvailableMatches(uint32_t format,
+ bool expected) {
for (int i = 0; i < kMaxIntervals; ++i) {
bool is_available = pp::flash::Clipboard::IsFormatAvailable(
instance_,
@@ -138,8 +137,7 @@ std::string TestFlashClipboard::TestReadWriteRTF() {
pp::VarArrayBuffer array_buffer(rtf_string.size());
char *bytes = static_cast<char*>(array_buffer.Map());
std::copy(rtf_string.data(), rtf_string.data() + rtf_string.size(), bytes);
- std::vector<PP_Flash_Clipboard_Format> formats_vector(1,
- PP_FLASH_CLIPBOARD_FORMAT_RTF);
+ std::vector<uint32_t> formats_vector(1, PP_FLASH_CLIPBOARD_FORMAT_RTF);
std::vector<pp::Var> data_vector(1, array_buffer);
ASSERT_TRUE(pp::flash::Clipboard::WriteData(
instance_,
@@ -165,8 +163,43 @@ std::string TestFlashClipboard::TestReadWriteRTF() {
PASS();
}
+std::string TestFlashClipboard::TestReadWriteCustomData() {
+ std::string custom_data = "custom_data";
+ pp::VarArrayBuffer array_buffer(custom_data.size());
+ char *bytes = static_cast<char*>(array_buffer.Map());
yzshen1 2012/10/29 17:58:04 nit: char* instead of "char *". (and line 194)
raymes 2012/10/29 18:44:58 Done.
+ std::copy(custom_data.data(), custom_data.data() + custom_data.size(), bytes);
yzshen1 2012/10/29 17:58:04 Why not using custom_data.begin() and custom_data.
raymes 2012/10/29 18:44:58 Done.
+ uint32_t format_id =
+ pp::flash::Clipboard::RegisterCustomFormat(instance_, "my-format");
+ ASSERT_NE(format_id, PP_FLASH_CLIPBOARD_FORMAT_INVALID);
+
+ std::vector<uint32_t> formats_vector(1, format_id);
+ std::vector<pp::Var> data_vector(1, array_buffer);
+ ASSERT_TRUE(pp::flash::Clipboard::WriteData(
+ instance_,
+ PP_FLASH_CLIPBOARD_TYPE_STANDARD,
+ formats_vector,
+ data_vector));
+
+ ASSERT_TRUE(IsFormatAvailableMatches(format_id, true));
+
+ pp::Var custom_data_result;
+ ASSERT_TRUE(pp::flash::Clipboard::ReadData(
+ instance_,
yzshen1 2012/10/29 17:58:04 wrong indent.
raymes 2012/10/29 18:44:58 Done.
+ PP_FLASH_CLIPBOARD_TYPE_STANDARD,
+ format_id,
+ &custom_data_result));
+ ASSERT_TRUE(custom_data_result.is_array_buffer());
+ pp::VarArrayBuffer array_buffer_result(custom_data_result);
+ ASSERT_EQ(array_buffer_result.ByteLength(), array_buffer.ByteLength());
+ char *bytes_result = static_cast<char*>(array_buffer_result.Map());
+ ASSERT_TRUE(std::equal(bytes, bytes + array_buffer.ByteLength(),
+ bytes_result));
+
+ PASS();
+}
+
std::string TestFlashClipboard::TestReadWriteMultipleFormats() {
- std::vector<PP_Flash_Clipboard_Format> formats;
+ std::vector<uint32_t> formats;
std::vector<pp::Var> data;
formats.push_back(PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT);
data.push_back(pp::Var("plain text"));
@@ -195,7 +228,7 @@ std::string TestFlashClipboard::TestClear() {
bool success = pp::flash::Clipboard::WriteData(
instance_,
PP_FLASH_CLIPBOARD_TYPE_STANDARD,
- std::vector<PP_Flash_Clipboard_Format>(),
+ std::vector<uint32_t>(),
std::vector<pp::Var>());
ASSERT_TRUE(success);
ASSERT_TRUE(IsFormatAvailableMatches(PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT,
@@ -205,8 +238,7 @@ std::string TestFlashClipboard::TestClear() {
}
std::string TestFlashClipboard::TestInvalidFormat() {
- PP_Flash_Clipboard_Format invalid_format =
- static_cast<PP_Flash_Clipboard_Format>(-1);
+ uint32_t invalid_format = 999;
ASSERT_FALSE(WriteStringVar(invalid_format, "text"));
ASSERT_TRUE(IsFormatAvailableMatches(invalid_format, false));
std::string unused;
@@ -214,3 +246,29 @@ std::string TestFlashClipboard::TestInvalidFormat() {
PASS();
}
+
+std::string TestFlashClipboard::TestRegisterCustomFormat() {
+ // Test an empty name is rejected.
+ uint32_t format_id =
+ pp::flash::Clipboard::RegisterCustomFormat(instance_, "");
yzshen1 2012/10/29 17:58:04 - wrong indent. - why don't you verify the resulti
raymes 2012/10/29 18:44:58 Done.
+
+ // Test a valid format name.
+ format_id = pp::flash::Clipboard::RegisterCustomFormat(instance_, "a-b");
+ ASSERT_NE(format_id, PP_FLASH_CLIPBOARD_FORMAT_INVALID);
+ // Make sure the format doesn't collide with predefined formats.
+ ASSERT_NE(format_id, PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT);
+ ASSERT_NE(format_id, PP_FLASH_CLIPBOARD_FORMAT_HTML);
+ ASSERT_NE(format_id, PP_FLASH_CLIPBOARD_FORMAT_RTF);
+
+ // Check that if the same name is registered, the same id comes out.
+ uint32_t format_id2 =
+ pp::flash::Clipboard::RegisterCustomFormat(instance_, "a-b");
+ ASSERT_EQ(format_id, format_id2);
+
+ // Check that the second format registered has a different id.
+ uint32_t format_id3 =
+ pp::flash::Clipboard::RegisterCustomFormat(instance_, "a-b-c");
+ ASSERT_NE(format_id, format_id3);
+
+ PASS();
+}

Powered by Google App Engine
This is Rietveld 408576698