|
101 | 101 | _(bucket_complete.autoclass_enabled).must_equal bucket_autoclass_enabled |
102 | 102 | _(bucket_complete.autoclass_terminal_storage_class).must_equal bucket_autoclass_terminal_storage_class |
103 | 103 | end |
| 104 | + |
| 105 | + it "creates a file with checksum: :crc32c by default" do |
| 106 | + new_file_name = random_file_path |
| 107 | + |
| 108 | + Tempfile.open ["google-cloud", ".txt"] do |tmpfile| |
| 109 | + tmpfile.write "Hello world!" |
| 110 | + tmpfile.rewind |
| 111 | + |
| 112 | + crc32c = Google::Cloud::Storage::File::Verifier.crc32c_for tmpfile |
| 113 | + mock = Minitest::Mock.new |
| 114 | + mock.expect :insert_object, create_file_gapi(bucket.name, new_file_name), |
| 115 | + [bucket.name, empty_file_gapi(content: tmpfile.read)], **insert_object_args(name: new_file_name, upload_source: tmpfile, options: {retries: 0}) |
| 116 | + |
| 117 | + bucket.service.mocked_service = mock |
| 118 | + bucket.create_file tmpfile, new_file_name |
| 119 | + |
| 120 | + mock.verify |
| 121 | + end |
| 122 | + end |
| 123 | + |
| 124 | + it "creates a file with a StringIO and checksum: :crc32c by default" do |
| 125 | + new_file_name = random_file_path |
| 126 | + new_file_contents = StringIO.new "Hello world" |
| 127 | + crc32c = Google::Cloud::Storage::File::Verifier.crc32c_for new_file_contents |
| 128 | + mock = Minitest::Mock.new |
| 129 | + mock.expect :insert_object, create_file_gapi(bucket.name, new_file_name), |
| 130 | + [bucket.name, empty_file_gapi(content: new_file_contents.read)], **insert_object_args(name: new_file_name, upload_source: new_file_contents, options: {retries: 0}) |
| 131 | + |
| 132 | + bucket.service.mocked_service = mock |
| 133 | + |
| 134 | + bucket.create_file new_file_contents, new_file_name |
| 135 | + |
| 136 | + mock.verify |
| 137 | + end |
104 | 138 |
|
105 | 139 | it "returns frozen cors" do |
106 | 140 | bucket_complete.cors.each do |cors| |
|
405 | 439 | end |
406 | 440 | end |
407 | 441 |
|
| 442 | + it "creates a file with no checksum" do |
| 443 | + new_file_name = random_file_path |
| 444 | + |
| 445 | + Tempfile.open ["google-cloud", ".txt"] do |tmpfile| |
| 446 | + tmpfile.write "Hello world!" |
| 447 | + tmpfile.rewind |
| 448 | + |
| 449 | + mock = Minitest::Mock.new |
| 450 | + mock.expect :insert_object, create_file_gapi(bucket.name, new_file_name), |
| 451 | + [bucket.name, empty_file_gapi(checksum: false)], **insert_object_args(name: new_file_name, upload_source: tmpfile, options: {retries: 0}) |
| 452 | + |
| 453 | + bucket.service.mocked_service = mock |
| 454 | + bucket.create_file tmpfile, new_file_name, checksum: false |
| 455 | + mock.verify |
| 456 | + end |
| 457 | + end |
| 458 | + |
| 459 | + it "creates a file with crc32c if checksum is true" do |
| 460 | + new_file_name = random_file_path |
| 461 | + |
| 462 | + Tempfile.open ["google-cloud", ".txt"] do |tmpfile| |
| 463 | + tmpfile.write "Hello world!" |
| 464 | + tmpfile.rewind |
| 465 | + |
| 466 | + mock = Minitest::Mock.new |
| 467 | + mock.expect :insert_object, create_file_gapi(bucket.name, new_file_name), |
| 468 | + [bucket.name, empty_file_gapi(checksum: true, crc32c: "e5jnUQ==")], **insert_object_args(name: new_file_name, upload_source: tmpfile, options: {retries: 0}) |
| 469 | + bucket.service.mocked_service = mock |
| 470 | + |
| 471 | + bucket.create_file tmpfile, new_file_name, checksum: true |
| 472 | + |
| 473 | + mock.verify |
| 474 | + end |
| 475 | + end |
| 476 | + |
408 | 477 | it "creates a file with attributes" do |
409 | 478 | new_file_name = random_file_path |
410 | 479 |
|
|
595 | 664 | new_file_name = random_file_path |
596 | 665 |
|
597 | 666 | Tempfile.create ["google-cloud", ".txt"] do |tmpfile| |
| 667 | + |
| 668 | + crc32c = Google::Cloud::Storage::File::Verifier.crc32c_for tmpfile |
598 | 669 | mock = Minitest::Mock.new |
599 | 670 | mock.expect :insert_object, create_file_gapi(bucket_user_project.name, new_file_name), |
600 | | - [bucket.name, empty_file_gapi], **insert_object_args(name: new_file_name, upload_source: tmpfile, user_project: "test", options: {retries: 0}) |
| 671 | + [bucket.name, empty_file_gapi(crc32c: crc32c)], **insert_object_args(name: new_file_name, upload_source: tmpfile, user_project: "test", options: {retries: 0}) |
601 | 672 |
|
602 | 673 | bucket_user_project.service.mocked_service = mock |
603 | 674 |
|
|
608 | 679 | end |
609 | 680 | end |
610 | 681 |
|
611 | | - it "creates an file with a StringIO" do |
| 682 | + it "creates a file with StringIO" do |
612 | 683 | new_file_name = random_file_path |
613 | | - new_file_contents = StringIO.new |
614 | | - |
| 684 | + new_file_contents = StringIO.new("Hello world string_io") |
| 685 | + crc32c = Google::Cloud::Storage::File::Verifier.crc32c_for new_file_contents |
615 | 686 | mock = Minitest::Mock.new |
616 | 687 | mock.expect :insert_object, create_file_gapi(bucket.name, new_file_name), |
617 | | - [bucket.name, empty_file_gapi], **insert_object_args(name: new_file_name, upload_source: new_file_contents, options: {retries: 0}) |
| 688 | + [bucket.name, empty_file_gapi(crc32c: crc32c)], **insert_object_args(name: new_file_name, upload_source: new_file_contents, options: {retries: 0}) |
618 | 689 |
|
619 | 690 | bucket.service.mocked_service = mock |
620 | 691 |
|
@@ -1416,7 +1487,11 @@ def empty_file_gapi cache_control: nil, content_disposition: nil, |
1416 | 1487 | content_encoding: nil, content_language: nil, |
1417 | 1488 | content_type: nil, crc32c: nil, md5: nil, metadata: nil, |
1418 | 1489 | storage_class: nil, temporary_hold: nil, |
1419 | | - event_based_hold: nil |
| 1490 | + event_based_hold: nil, checksum: nil, content: nil |
| 1491 | + |
| 1492 | + # If no checksum type or specific value is provided, the default will be set to crc32c. |
| 1493 | + # If the checksum is set to false, it will be disabled. |
| 1494 | + crc32c ||= set_crc32c_as_default md5, crc32c, checksum, content |
1420 | 1495 | params = { |
1421 | 1496 | cache_control: cache_control, content_type: content_type, |
1422 | 1497 | content_disposition: content_disposition, md5_hash: md5, |
|
0 commit comments