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

Side by Side Diff: ppapi/tests/test_flash_clipboard.cc

Issue 136183002: Add GetSequenceNumber function to PPB_Flash_Clipboard (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ppapi/tests/test_flash_clipboard.h ('k') | ppapi/thunk/interfaces_ppb_private_flash.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "ppapi/tests/test_flash_clipboard.h" 5 #include "ppapi/tests/test_flash_clipboard.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "ppapi/cpp/instance.h" 10 #include "ppapi/cpp/instance.h"
(...skipping 21 matching lines...) Expand all
32 32
33 void TestFlashClipboard::RunTests(const std::string& filter) { 33 void TestFlashClipboard::RunTests(const std::string& filter) {
34 RUN_TEST(ReadWritePlainText, filter); 34 RUN_TEST(ReadWritePlainText, filter);
35 RUN_TEST(ReadWriteHTML, filter); 35 RUN_TEST(ReadWriteHTML, filter);
36 RUN_TEST(ReadWriteRTF, filter); 36 RUN_TEST(ReadWriteRTF, filter);
37 RUN_TEST(ReadWriteCustomData, filter); 37 RUN_TEST(ReadWriteCustomData, filter);
38 RUN_TEST(ReadWriteMultipleFormats, filter); 38 RUN_TEST(ReadWriteMultipleFormats, filter);
39 RUN_TEST(Clear, filter); 39 RUN_TEST(Clear, filter);
40 RUN_TEST(InvalidFormat, filter); 40 RUN_TEST(InvalidFormat, filter);
41 RUN_TEST(RegisterCustomFormat, filter); 41 RUN_TEST(RegisterCustomFormat, filter);
42 RUN_TEST(GetSequenceNumber, filter);
42 } 43 }
43 44
44 bool TestFlashClipboard::ReadStringVar(uint32_t format, std::string* result) { 45 bool TestFlashClipboard::ReadStringVar(uint32_t format, std::string* result) {
45 pp::Var text; 46 pp::Var text;
46 bool success = pp::flash::Clipboard::ReadData( 47 bool success = pp::flash::Clipboard::ReadData(
47 instance_, 48 instance_,
48 PP_FLASH_CLIPBOARD_TYPE_STANDARD, 49 PP_FLASH_CLIPBOARD_TYPE_STANDARD,
49 format, 50 format,
50 &text); 51 &text);
51 if (success && text.is_string()) { 52 if (success && text.is_string()) {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 result.find("<!--StartFragment-->") == std::string::npos && 107 result.find("<!--StartFragment-->") == std::string::npos &&
107 result.find("<!--EndFragment-->") == std::string::npos) { 108 result.find("<!--EndFragment-->") == std::string::npos) {
108 return true; 109 return true;
109 } 110 }
110 111
111 PlatformSleep(kIntervalMs); 112 PlatformSleep(kIntervalMs);
112 } 113 }
113 return false; 114 return false;
114 } 115 }
115 116
117 uint64_t TestFlashClipboard::GetSequenceNumber(uint64_t last_sequence_number) {
118 uint64_t next_sequence_number = last_sequence_number;
119 for (int i = 0; i < kMaxIntervals; ++i) {
120 pp::flash::Clipboard::GetSequenceNumber(
121 instance_, PP_FLASH_CLIPBOARD_TYPE_STANDARD, &next_sequence_number);
122 if (next_sequence_number != last_sequence_number)
123 return next_sequence_number;
124
125 PlatformSleep(kIntervalMs);
126 }
127 return next_sequence_number;
128 }
129
116 std::string TestFlashClipboard::TestReadWritePlainText() { 130 std::string TestFlashClipboard::TestReadWritePlainText() {
117 std::string input = "Hello world plain text!"; 131 std::string input = "Hello world plain text!";
118 ASSERT_TRUE(WriteStringVar(PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT, input)); 132 ASSERT_TRUE(WriteStringVar(PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT, input));
119 ASSERT_TRUE(IsFormatAvailableMatches(PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT, 133 ASSERT_TRUE(IsFormatAvailableMatches(PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT,
120 true)); 134 true));
121 ASSERT_TRUE(ReadPlainTextMatches(input)); 135 ASSERT_TRUE(ReadPlainTextMatches(input));
122 136
123 PASS(); 137 PASS();
124 } 138 }
125 139
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 pp::flash::Clipboard::RegisterCustomFormat(instance_, "a-b"); 283 pp::flash::Clipboard::RegisterCustomFormat(instance_, "a-b");
270 ASSERT_EQ(format_id, format_id2); 284 ASSERT_EQ(format_id, format_id2);
271 285
272 // Check that the second format registered has a different id. 286 // Check that the second format registered has a different id.
273 uint32_t format_id3 = 287 uint32_t format_id3 =
274 pp::flash::Clipboard::RegisterCustomFormat(instance_, "a-b-c"); 288 pp::flash::Clipboard::RegisterCustomFormat(instance_, "a-b-c");
275 ASSERT_NE(format_id, format_id3); 289 ASSERT_NE(format_id, format_id3);
276 290
277 PASS(); 291 PASS();
278 } 292 }
293
294 std::string TestFlashClipboard::TestGetSequenceNumber() {
295 uint64_t sequence_number_before = 0;
296 uint64_t sequence_number_after = 0;
297 ASSERT_TRUE(pp::flash::Clipboard::GetSequenceNumber(
298 instance_, PP_FLASH_CLIPBOARD_TYPE_STANDARD, &sequence_number_before));
299
300 // Test the sequence number changes after writing html.
301 ASSERT_TRUE(WriteStringVar(PP_FLASH_CLIPBOARD_FORMAT_HTML, "<html>"));
302 sequence_number_after = GetSequenceNumber(sequence_number_before);
303 ASSERT_NE(sequence_number_before, sequence_number_after);
304 sequence_number_before = sequence_number_after;
305
306 // Test the sequence number changes after writing some custom data.
307 std::string custom_data = "custom_data";
308 pp::VarArrayBuffer array_buffer(custom_data.size());
309 char* bytes = static_cast<char*>(array_buffer.Map());
310 std::copy(custom_data.begin(), custom_data.end(), bytes);
311 uint32_t format_id =
312 pp::flash::Clipboard::RegisterCustomFormat(instance_, "my-format");
313 std::vector<uint32_t> formats_vector(1, format_id);
314 std::vector<pp::Var> data_vector(1, array_buffer);
315 ASSERT_TRUE(pp::flash::Clipboard::WriteData(instance_,
316 PP_FLASH_CLIPBOARD_TYPE_STANDARD,
317 formats_vector,
318 data_vector));
319 sequence_number_after = GetSequenceNumber(sequence_number_before);
320 ASSERT_NE(sequence_number_before, sequence_number_after);
321 sequence_number_before = sequence_number_after;
322
323 // Read the data and make sure the sequence number doesn't change.
324 pp::Var custom_data_result;
325 ASSERT_TRUE(pp::flash::Clipboard::ReadData(
326 instance_,
327 PP_FLASH_CLIPBOARD_TYPE_STANDARD,
328 format_id,
329 &custom_data_result));
330 ASSERT_TRUE(pp::flash::Clipboard::GetSequenceNumber(
331 instance_, PP_FLASH_CLIPBOARD_TYPE_STANDARD, &sequence_number_after));
332 ASSERT_EQ(sequence_number_before, sequence_number_after);
333 sequence_number_before = sequence_number_after;
334
335 // Clear the clipboard and check the sequence number changes.
336 pp::flash::Clipboard::WriteData(instance_,
337 PP_FLASH_CLIPBOARD_TYPE_STANDARD,
338 std::vector<uint32_t>(),
339 std::vector<pp::Var>());
340 sequence_number_after = GetSequenceNumber(sequence_number_before);
341 ASSERT_NE(sequence_number_before, sequence_number_after);
342
343 PASS();
344 }
OLDNEW
« no previous file with comments | « ppapi/tests/test_flash_clipboard.h ('k') | ppapi/thunk/interfaces_ppb_private_flash.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698