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

Side by Side Diff: trunk/src/ppapi/tests/test_file_ref.cc

Issue 131473002: Revert 243802 "PPAPI: Add new PPB_FileRef.MakeDirectory to suppo..." (Closed) Base URL: svn://svn.chromium.org/chrome/
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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_file_ref.h" 5 #include "ppapi/tests/test_file_ref.h"
6 6
7 #include <stdio.h> 7 #include <stdio.h>
8 8
9 #include <sstream> 9 #include <sstream>
10 #include <vector> 10 #include <vector>
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 291
292 std::string TestFileRef::TestMakeDirectory() { 292 std::string TestFileRef::TestMakeDirectory() {
293 TestCompletionCallback callback(instance_->pp_instance(), callback_type()); 293 TestCompletionCallback callback(instance_->pp_instance(), callback_type());
294 294
295 // Open. 295 // Open.
296 pp::FileSystem file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY); 296 pp::FileSystem file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY);
297 callback.WaitForResult(file_system.Open(1024, callback.GetCallback())); 297 callback.WaitForResult(file_system.Open(1024, callback.GetCallback()));
298 CHECK_CALLBACK_BEHAVIOR(callback); 298 CHECK_CALLBACK_BEHAVIOR(callback);
299 ASSERT_EQ(PP_OK, callback.result()); 299 ASSERT_EQ(PP_OK, callback.result());
300 300
301 // Make a directory. 301 // MakeDirectory.
302 pp::FileRef dir_ref(file_system, "/dir_make_dir"); 302 pp::FileRef dir_ref(file_system, "/test_dir_make_directory");
303 callback.WaitForResult( 303 callback.WaitForResult(dir_ref.MakeDirectory(callback.GetCallback()));
304 dir_ref.MakeDirectory(PP_MAKEDIRECTORYFLAG_NONE, callback.GetCallback()));
305 CHECK_CALLBACK_BEHAVIOR(callback); 304 CHECK_CALLBACK_BEHAVIOR(callback);
306 ASSERT_EQ(PP_OK, callback.result()); 305 ASSERT_EQ(PP_OK, callback.result());
307 306
308 // Make a directory on the existing path without exclusive flag. 307 // MakeDirectory aborted.
309 callback.WaitForResult(
310 dir_ref.MakeDirectory(PP_MAKEDIRECTORYFLAG_NONE, callback.GetCallback()));
311 CHECK_CALLBACK_BEHAVIOR(callback);
312 ASSERT_EQ(PP_OK, callback.result());
313
314 // Making a directory should be aborted.
315 int32_t rv = PP_ERROR_FAILED; 308 int32_t rv = PP_ERROR_FAILED;
316 { 309 {
317 rv = pp::FileRef(file_system, "/dir_make_dir_abort") 310 rv = pp::FileRef(file_system, "/test_dir_make_abort")
318 .MakeDirectory(PP_MAKEDIRECTORYFLAG_NONE, callback.GetCallback()); 311 .MakeDirectory(callback.GetCallback());
319 } 312 }
320 callback.WaitForAbortResult(rv); 313 callback.WaitForAbortResult(rv);
321 CHECK_CALLBACK_BEHAVIOR(callback); 314 CHECK_CALLBACK_BEHAVIOR(callback);
322 315
323 // Make nested directories. 316 // MakeDirectoryIncludingAncestors.
324 dir_ref = pp::FileRef(file_system, "/dir_make_nested_dir_1/dir"); 317 dir_ref = pp::FileRef(file_system, "/dir_make_dir_1/dir_make_dir_2");
325 callback.WaitForResult( 318 callback.WaitForResult(
326 dir_ref.MakeDirectory(PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS, 319 dir_ref.MakeDirectoryIncludingAncestors(callback.GetCallback()));
327 callback.GetCallback()));
328 CHECK_CALLBACK_BEHAVIOR(callback); 320 CHECK_CALLBACK_BEHAVIOR(callback);
329 ASSERT_EQ(PP_OK, callback.result()); 321 ASSERT_EQ(PP_OK, callback.result());
330 322
331 dir_ref = pp::FileRef(file_system, "/dir_make_nested_dir_2/dir"); 323 // MakeDirectoryIncludingAncestors aborted.
332 callback.WaitForResult( 324 {
333 dir_ref.MakeDirectory(PP_MAKEDIRECTORYFLAG_NONE, callback.GetCallback())); 325 rv = pp::FileRef(file_system, "/dir_make_abort_1/dir_make_abort_2")
326 .MakeDirectoryIncludingAncestors(callback.GetCallback());
327 }
328 callback.WaitForAbortResult(rv);
334 CHECK_CALLBACK_BEHAVIOR(callback); 329 CHECK_CALLBACK_BEHAVIOR(callback);
335 ASSERT_EQ(PP_ERROR_FILENOTFOUND, callback.result());
336 330
337 // Ensure there is no directory on the path to test exclusive cases. 331 // MakeDirectory with nested path should fail.
338 dir_ref = pp::FileRef(file_system, "/dir_make_dir_exclusive"); 332 dir_ref = pp::FileRef(file_system, "/dir_make_dir_3/dir_make_dir_4");
339 rv = DeleteDirectoryRecursively(&dir_ref); 333 callback.WaitForResult(dir_ref.MakeDirectory(callback.GetCallback()));
340 ASSERT_TRUE(rv == PP_OK || rv == PP_ERROR_FILENOTFOUND);
341
342 // Make a directory exclusively.
343 callback.WaitForResult(
344 dir_ref.MakeDirectory(PP_MAKEDIRECTORYFLAG_EXCLUSIVE,
345 callback.GetCallback()));
346 CHECK_CALLBACK_BEHAVIOR(callback); 334 CHECK_CALLBACK_BEHAVIOR(callback);
347 ASSERT_EQ(PP_OK, callback.result()); 335 ASSERT_NE(PP_OK, callback.result());
348
349 callback.WaitForResult(
350 dir_ref.MakeDirectory(PP_MAKEDIRECTORYFLAG_EXCLUSIVE,
351 callback.GetCallback()));
352 CHECK_CALLBACK_BEHAVIOR(callback);
353 ASSERT_EQ(PP_ERROR_FILEEXISTS, callback.result());
354 336
355 PASS(); 337 PASS();
356 } 338 }
357 339
358 std::string TestFileRef::TestQueryAndTouchFile() { 340 std::string TestFileRef::TestQueryAndTouchFile() {
359 TestCompletionCallback callback(instance_->pp_instance(), callback_type()); 341 TestCompletionCallback callback(instance_->pp_instance(), callback_type());
360 pp::FileSystem file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY); 342 pp::FileSystem file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY);
361 callback.WaitForResult(file_system.Open(1024, callback.GetCallback())); 343 callback.WaitForResult(file_system.Open(1024, callback.GetCallback()));
362 CHECK_CALLBACK_BEHAVIOR(callback); 344 CHECK_CALLBACK_BEHAVIOR(callback);
363 ASSERT_EQ(PP_OK, callback.result()); 345 ASSERT_EQ(PP_OK, callback.result());
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 callback.WaitForResult( 425 callback.WaitForResult(
444 file_io.Open(file_ref, PP_FILEOPENFLAG_CREATE, callback.GetCallback())); 426 file_io.Open(file_ref, PP_FILEOPENFLAG_CREATE, callback.GetCallback()));
445 CHECK_CALLBACK_BEHAVIOR(callback); 427 CHECK_CALLBACK_BEHAVIOR(callback);
446 ASSERT_EQ(PP_OK, callback.result()); 428 ASSERT_EQ(PP_OK, callback.result());
447 429
448 callback.WaitForResult(file_ref.Delete(callback.GetCallback())); 430 callback.WaitForResult(file_ref.Delete(callback.GetCallback()));
449 CHECK_CALLBACK_BEHAVIOR(callback); 431 CHECK_CALLBACK_BEHAVIOR(callback);
450 ASSERT_EQ(PP_OK, callback.result()); 432 ASSERT_EQ(PP_OK, callback.result());
451 433
452 pp::FileRef dir_ref(file_system, "/dir_delete"); 434 pp::FileRef dir_ref(file_system, "/dir_delete");
453 callback.WaitForResult(dir_ref.MakeDirectory( 435 callback.WaitForResult(dir_ref.MakeDirectory(callback.GetCallback()));
454 PP_MAKEDIRECTORYFLAG_NONE, callback.GetCallback()));
455 CHECK_CALLBACK_BEHAVIOR(callback); 436 CHECK_CALLBACK_BEHAVIOR(callback);
456 ASSERT_EQ(PP_OK, callback.result()); 437 ASSERT_EQ(PP_OK, callback.result());
457 438
458 callback.WaitForResult(dir_ref.Delete(callback.GetCallback())); 439 callback.WaitForResult(dir_ref.Delete(callback.GetCallback()));
459 CHECK_CALLBACK_BEHAVIOR(callback); 440 CHECK_CALLBACK_BEHAVIOR(callback);
460 ASSERT_EQ(PP_OK, callback.result()); 441 ASSERT_EQ(PP_OK, callback.result());
461 442
462 pp::FileRef nested_dir_ref(file_system, "/dir_delete_1/dir_delete_2"); 443 pp::FileRef nested_dir_ref(file_system, "/dir_delete_1/dir_delete_2");
463 callback.WaitForResult( 444 callback.WaitForResult(
464 nested_dir_ref.MakeDirectory(PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS, 445 nested_dir_ref.MakeDirectoryIncludingAncestors(callback.GetCallback()));
465 callback.GetCallback()));
466 CHECK_CALLBACK_BEHAVIOR(callback); 446 CHECK_CALLBACK_BEHAVIOR(callback);
467 ASSERT_EQ(PP_OK, callback.result()); 447 ASSERT_EQ(PP_OK, callback.result());
468 448
469 // Attempt to delete the parent directory (should fail; it's non-empty). 449 // Attempt to delete the parent directory (should fail; it's non-empty).
470 pp::FileRef parent_dir_ref = nested_dir_ref.GetParent(); 450 pp::FileRef parent_dir_ref = nested_dir_ref.GetParent();
471 callback.WaitForResult(parent_dir_ref.Delete(callback.GetCallback())); 451 callback.WaitForResult(parent_dir_ref.Delete(callback.GetCallback()));
472 CHECK_CALLBACK_BEHAVIOR(callback); 452 CHECK_CALLBACK_BEHAVIOR(callback);
473 ASSERT_EQ(PP_ERROR_FAILED, callback.result()); 453 ASSERT_EQ(PP_ERROR_FAILED, callback.result());
474 454
475 pp::FileRef nonexistent_file_ref(file_system, "/nonexistent_file_delete"); 455 pp::FileRef nonexistent_file_ref(file_system, "/nonexistent_file_delete");
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 CHECK_CALLBACK_BEHAVIOR(callback); 489 CHECK_CALLBACK_BEHAVIOR(callback);
510 ASSERT_EQ(PP_OK, callback.result()); 490 ASSERT_EQ(PP_OK, callback.result());
511 491
512 pp::FileRef target_file_ref(file_system, "/target_file_rename"); 492 pp::FileRef target_file_ref(file_system, "/target_file_rename");
513 callback.WaitForResult( 493 callback.WaitForResult(
514 file_ref.Rename(target_file_ref, callback.GetCallback())); 494 file_ref.Rename(target_file_ref, callback.GetCallback()));
515 CHECK_CALLBACK_BEHAVIOR(callback); 495 CHECK_CALLBACK_BEHAVIOR(callback);
516 ASSERT_EQ(PP_OK, callback.result()); 496 ASSERT_EQ(PP_OK, callback.result());
517 497
518 pp::FileRef dir_ref(file_system, "/dir_rename"); 498 pp::FileRef dir_ref(file_system, "/dir_rename");
519 callback.WaitForResult(dir_ref.MakeDirectory( 499 callback.WaitForResult(dir_ref.MakeDirectory(callback.GetCallback()));
520 PP_MAKEDIRECTORYFLAG_NONE, callback.GetCallback()));
521 CHECK_CALLBACK_BEHAVIOR(callback); 500 CHECK_CALLBACK_BEHAVIOR(callback);
522 ASSERT_EQ(PP_OK, callback.result()); 501 ASSERT_EQ(PP_OK, callback.result());
523 502
524 pp::FileRef target_dir_ref(file_system, "/target_dir_rename"); 503 pp::FileRef target_dir_ref(file_system, "/target_dir_rename");
525 callback.WaitForResult( 504 callback.WaitForResult(
526 dir_ref.Rename(target_dir_ref, callback.GetCallback())); 505 dir_ref.Rename(target_dir_ref, callback.GetCallback()));
527 CHECK_CALLBACK_BEHAVIOR(callback); 506 CHECK_CALLBACK_BEHAVIOR(callback);
528 ASSERT_EQ(PP_OK, callback.result()); 507 ASSERT_EQ(PP_OK, callback.result());
529 508
530 pp::FileRef nested_dir_ref(file_system, "/dir_rename_1/dir_rename_2"); 509 pp::FileRef nested_dir_ref(file_system, "/dir_rename_1/dir_rename_2");
531 callback.WaitForResult( 510 callback.WaitForResult(
532 nested_dir_ref.MakeDirectory(PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS, 511 nested_dir_ref.MakeDirectoryIncludingAncestors(callback.GetCallback()));
533 callback.GetCallback()));
534 CHECK_CALLBACK_BEHAVIOR(callback); 512 CHECK_CALLBACK_BEHAVIOR(callback);
535 ASSERT_EQ(PP_OK, callback.result()); 513 ASSERT_EQ(PP_OK, callback.result());
536 514
537 // Try to rename nested directory to the parent name. Should fail. 515 // Try to rename nested directory to the parent name. Should fail.
538 pp::FileRef target_nested_dir_ref(file_system, "/dir_rename_1"); 516 pp::FileRef target_nested_dir_ref(file_system, "/dir_rename_1");
539 callback.WaitForResult( 517 callback.WaitForResult(
540 nested_dir_ref.Rename(target_nested_dir_ref, callback.GetCallback())); 518 nested_dir_ref.Rename(target_nested_dir_ref, callback.GetCallback()));
541 CHECK_CALLBACK_BEHAVIOR(callback); 519 CHECK_CALLBACK_BEHAVIOR(callback);
542 ASSERT_EQ(PP_ERROR_FAILED, callback.result()); 520 ASSERT_EQ(PP_ERROR_FAILED, callback.result());
543 521
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 std::string TestFileRef::TestFileNameEscaping() { 608 std::string TestFileRef::TestFileNameEscaping() {
631 TestCompletionCallback callback(instance_->pp_instance(), callback_type()); 609 TestCompletionCallback callback(instance_->pp_instance(), callback_type());
632 pp::FileSystem file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY); 610 pp::FileSystem file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY);
633 callback.WaitForResult(file_system.Open(1024, callback.GetCallback())); 611 callback.WaitForResult(file_system.Open(1024, callback.GetCallback()));
634 CHECK_CALLBACK_BEHAVIOR(callback); 612 CHECK_CALLBACK_BEHAVIOR(callback);
635 ASSERT_EQ(PP_OK, callback.result()); 613 ASSERT_EQ(PP_OK, callback.result());
636 614
637 std::string test_dir_path = "/dir_for_escaping_test"; 615 std::string test_dir_path = "/dir_for_escaping_test";
638 // Create a directory in which to test. 616 // Create a directory in which to test.
639 pp::FileRef test_dir_ref(file_system, test_dir_path.c_str()); 617 pp::FileRef test_dir_ref(file_system, test_dir_path.c_str());
640 callback.WaitForResult(test_dir_ref.MakeDirectory( 618 callback.WaitForResult(test_dir_ref.MakeDirectory(callback.GetCallback()));
641 PP_MAKEDIRECTORYFLAG_NONE, callback.GetCallback()));
642 CHECK_CALLBACK_BEHAVIOR(callback); 619 CHECK_CALLBACK_BEHAVIOR(callback);
643 ASSERT_EQ(PP_OK, callback.result()); 620 ASSERT_EQ(PP_OK, callback.result());
644 621
645 // Create the file with the terrible name. 622 // Create the file with the terrible name.
646 std::string full_file_path = test_dir_path + "/" + kTerribleName; 623 std::string full_file_path = test_dir_path + "/" + kTerribleName;
647 pp::FileRef file_ref(file_system, full_file_path.c_str()); 624 pp::FileRef file_ref(file_system, full_file_path.c_str());
648 pp::FileIO file_io(instance_); 625 pp::FileIO file_io(instance_);
649 callback.WaitForResult( 626 callback.WaitForResult(
650 file_io.Open(file_ref, PP_FILEOPENFLAG_CREATE, callback.GetCallback())); 627 file_io.Open(file_ref, PP_FILEOPENFLAG_CREATE, callback.GetCallback()));
651 CHECK_CALLBACK_BEHAVIOR(callback); 628 CHECK_CALLBACK_BEHAVIOR(callback);
(...skipping 27 matching lines...) Expand all
679 656
680 // Setup testing directories and files. 657 // Setup testing directories and files.
681 const char* test_dir_name = "/test_get_next_file"; 658 const char* test_dir_name = "/test_get_next_file";
682 const char* file_prefix = "file_"; 659 const char* file_prefix = "file_";
683 const char* dir_prefix = "dir_"; 660 const char* dir_prefix = "dir_";
684 661
685 pp::FileRef test_dir(file_system, test_dir_name); 662 pp::FileRef test_dir(file_system, test_dir_name);
686 int32_t rv = DeleteDirectoryRecursively(&test_dir); 663 int32_t rv = DeleteDirectoryRecursively(&test_dir);
687 ASSERT_TRUE(rv == PP_OK || rv == PP_ERROR_FILENOTFOUND); 664 ASSERT_TRUE(rv == PP_OK || rv == PP_ERROR_FILENOTFOUND);
688 665
689 callback.WaitForResult(test_dir.MakeDirectory( 666 callback.WaitForResult(test_dir.MakeDirectory(callback.GetCallback()));
690 PP_MAKEDIRECTORYFLAG_NONE, callback.GetCallback()));
691 CHECK_CALLBACK_BEHAVIOR(callback); 667 CHECK_CALLBACK_BEHAVIOR(callback);
692 ASSERT_EQ(PP_OK, callback.result()); 668 ASSERT_EQ(PP_OK, callback.result());
693 669
694 static const int kNumFiles = 3; 670 static const int kNumFiles = 3;
695 std::set<std::string> expected_file_names; 671 std::set<std::string> expected_file_names;
696 for (int i = 1; i <= kNumFiles; ++i) { 672 for (int i = 1; i <= kNumFiles; ++i) {
697 std::ostringstream buffer; 673 std::ostringstream buffer;
698 buffer << test_dir_name << '/' << file_prefix << i; 674 buffer << test_dir_name << '/' << file_prefix << i;
699 pp::FileRef file_ref(file_system, buffer.str().c_str()); 675 pp::FileRef file_ref(file_system, buffer.str().c_str());
700 676
701 pp::FileIO file_io(instance_); 677 pp::FileIO file_io(instance_);
702 callback.WaitForResult( 678 callback.WaitForResult(
703 file_io.Open(file_ref, PP_FILEOPENFLAG_CREATE, callback.GetCallback())); 679 file_io.Open(file_ref, PP_FILEOPENFLAG_CREATE, callback.GetCallback()));
704 CHECK_CALLBACK_BEHAVIOR(callback); 680 CHECK_CALLBACK_BEHAVIOR(callback);
705 ASSERT_EQ(PP_OK, callback.result()); 681 ASSERT_EQ(PP_OK, callback.result());
706 682
707 expected_file_names.insert(buffer.str()); 683 expected_file_names.insert(buffer.str());
708 } 684 }
709 685
710 static const int kNumDirectories = 3; 686 static const int kNumDirectories = 3;
711 std::set<std::string> expected_dir_names; 687 std::set<std::string> expected_dir_names;
712 for (int i = 1; i <= kNumDirectories; ++i) { 688 for (int i = 1; i <= kNumDirectories; ++i) {
713 std::ostringstream buffer; 689 std::ostringstream buffer;
714 buffer << test_dir_name << '/' << dir_prefix << i; 690 buffer << test_dir_name << '/' << dir_prefix << i;
715 pp::FileRef file_ref(file_system, buffer.str().c_str()); 691 pp::FileRef file_ref(file_system, buffer.str().c_str());
716 692
717 callback.WaitForResult(file_ref.MakeDirectory( 693 callback.WaitForResult(file_ref.MakeDirectory(callback.GetCallback()));
718 PP_MAKEDIRECTORYFLAG_NONE, callback.GetCallback()));
719 CHECK_CALLBACK_BEHAVIOR(callback); 694 CHECK_CALLBACK_BEHAVIOR(callback);
720 ASSERT_EQ(PP_OK, callback.result()); 695 ASSERT_EQ(PP_OK, callback.result());
721 696
722 expected_dir_names.insert(buffer.str()); 697 expected_dir_names.insert(buffer.str());
723 } 698 }
724 699
725 // Test that |ReadDirectoryEntries()| is able to fetch all 700 // Test that |ReadDirectoryEntries()| is able to fetch all
726 // directories and files that we created. 701 // directories and files that we created.
727 { 702 {
728 TestCompletionCallbackWithOutput<DirEntries> output_callback( 703 TestCompletionCallbackWithOutput<DirEntries> output_callback(
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 { 741 {
767 rv = pp::FileRef(file_system, test_dir_name) 742 rv = pp::FileRef(file_system, test_dir_name)
768 .ReadDirectoryEntries(output_callback.GetCallback()); 743 .ReadDirectoryEntries(output_callback.GetCallback());
769 } 744 }
770 output_callback.WaitForAbortResult(rv); 745 output_callback.WaitForAbortResult(rv);
771 CHECK_CALLBACK_BEHAVIOR(output_callback); 746 CHECK_CALLBACK_BEHAVIOR(output_callback);
772 747
773 748
774 PASS(); 749 PASS();
775 } 750 }
OLDNEW
« no previous file with comments | « trunk/src/ppapi/tests/test_file_io.cc ('k') | trunk/src/ppapi/thunk/interfaces_ppb_public_dev_channel.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698