| Index: ppapi/tests/test_flash_clipboard.cc
|
| diff --git a/ppapi/tests/test_flash_clipboard.cc b/ppapi/tests/test_flash_clipboard.cc
|
| index 8eb756bd47903a7f8b05d18839a990510bd8be20..537dde84950a780c5d3455d1392dc2a5bd6241b1 100644
|
| --- a/ppapi/tests/test_flash_clipboard.cc
|
| +++ b/ppapi/tests/test_flash_clipboard.cc
|
| @@ -39,6 +39,7 @@ void TestFlashClipboard::RunTests(const std::string& filter) {
|
| RUN_TEST(Clear, filter);
|
| RUN_TEST(InvalidFormat, filter);
|
| RUN_TEST(RegisterCustomFormat, filter);
|
| + RUN_TEST(GetSequenceNumber, filter);
|
| }
|
|
|
| bool TestFlashClipboard::ReadStringVar(uint32_t format, std::string* result) {
|
| @@ -113,6 +114,19 @@ bool TestFlashClipboard::ReadHTMLMatches(const std::string& expected) {
|
| return false;
|
| }
|
|
|
| +uint64_t TestFlashClipboard::GetSequenceNumber(uint64_t last_sequence_number) {
|
| + uint64_t next_sequence_number = last_sequence_number;
|
| + for (int i = 0; i < kMaxIntervals; ++i) {
|
| + pp::flash::Clipboard::GetSequenceNumber(
|
| + instance_, PP_FLASH_CLIPBOARD_TYPE_STANDARD, &next_sequence_number);
|
| + if (next_sequence_number != last_sequence_number)
|
| + return next_sequence_number;
|
| +
|
| + PlatformSleep(kIntervalMs);
|
| + }
|
| + return next_sequence_number;
|
| +}
|
| +
|
| std::string TestFlashClipboard::TestReadWritePlainText() {
|
| std::string input = "Hello world plain text!";
|
| ASSERT_TRUE(WriteStringVar(PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT, input));
|
| @@ -276,3 +290,55 @@ std::string TestFlashClipboard::TestRegisterCustomFormat() {
|
|
|
| PASS();
|
| }
|
| +
|
| +std::string TestFlashClipboard::TestGetSequenceNumber() {
|
| + uint64_t sequence_number_before = 0;
|
| + uint64_t sequence_number_after = 0;
|
| + ASSERT_TRUE(pp::flash::Clipboard::GetSequenceNumber(
|
| + instance_, PP_FLASH_CLIPBOARD_TYPE_STANDARD, &sequence_number_before));
|
| +
|
| + // Test the sequence number changes after writing html.
|
| + ASSERT_TRUE(WriteStringVar(PP_FLASH_CLIPBOARD_FORMAT_HTML, "<html>"));
|
| + sequence_number_after = GetSequenceNumber(sequence_number_before);
|
| + ASSERT_NE(sequence_number_before, sequence_number_after);
|
| + sequence_number_before = sequence_number_after;
|
| +
|
| + // Test the sequence number changes after writing some custom data.
|
| + std::string custom_data = "custom_data";
|
| + pp::VarArrayBuffer array_buffer(custom_data.size());
|
| + char* bytes = static_cast<char*>(array_buffer.Map());
|
| + std::copy(custom_data.begin(), custom_data.end(), bytes);
|
| + uint32_t format_id =
|
| + pp::flash::Clipboard::RegisterCustomFormat(instance_, "my-format");
|
| + 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));
|
| + sequence_number_after = GetSequenceNumber(sequence_number_before);
|
| + ASSERT_NE(sequence_number_before, sequence_number_after);
|
| + sequence_number_before = sequence_number_after;
|
| +
|
| + // Read the data and make sure the sequence number doesn't change.
|
| + pp::Var custom_data_result;
|
| + ASSERT_TRUE(pp::flash::Clipboard::ReadData(
|
| + instance_,
|
| + PP_FLASH_CLIPBOARD_TYPE_STANDARD,
|
| + format_id,
|
| + &custom_data_result));
|
| + ASSERT_TRUE(pp::flash::Clipboard::GetSequenceNumber(
|
| + instance_, PP_FLASH_CLIPBOARD_TYPE_STANDARD, &sequence_number_after));
|
| + ASSERT_EQ(sequence_number_before, sequence_number_after);
|
| + sequence_number_before = sequence_number_after;
|
| +
|
| + // Clear the clipboard and check the sequence number changes.
|
| + pp::flash::Clipboard::WriteData(instance_,
|
| + PP_FLASH_CLIPBOARD_TYPE_STANDARD,
|
| + std::vector<uint32_t>(),
|
| + std::vector<pp::Var>());
|
| + sequence_number_after = GetSequenceNumber(sequence_number_before);
|
| + ASSERT_NE(sequence_number_before, sequence_number_after);
|
| +
|
| + PASS();
|
| +}
|
|
|