| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 | 8 |
| 9 #include "base/base64.h" | 9 #include "base/base64.h" |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 template <typename T> | 36 template <typename T> |
| 37 void ExpectEquality(const std::vector<T>& a, const std::vector<T>& b) { | 37 void ExpectEquality(const std::vector<T>& a, const std::vector<T>& b) { |
| 38 EXPECT_EQ(a.size(), b.size()); | 38 EXPECT_EQ(a.size(), b.size()); |
| 39 for (size_t i = 0; i < std::min(a.size(), b.size()); ++i) | 39 for (size_t i = 0; i < std::min(a.size(), b.size()); ++i) |
| 40 ExpectEquality(a[i], b[i]); | 40 ExpectEquality(a[i], b[i]); |
| 41 } | 41 } |
| 42 | 42 |
| 43 template <> | 43 template <> |
| 44 void ExpectEquality(const ExplodedHttpBodyElement& a, | 44 void ExpectEquality(const ExplodedHttpBodyElement& a, |
| 45 const ExplodedHttpBodyElement& b) { | 45 const ExplodedHttpBodyElement& b) { |
| 46 EXPECT_EQ(a.type, b.type); | 46 EXPECT_EQ(a.type(), b.type()); |
| 47 EXPECT_EQ(a.data, b.data); | 47 if (a.type() == ExplodedHttpBodyElement::TYPE_BYTES && |
| 48 EXPECT_EQ(a.file_path, b.file_path); | 48 b.type() == ExplodedHttpBodyElement::TYPE_BYTES) { |
| 49 EXPECT_EQ(a.filesystem_url, b.filesystem_url); | 49 EXPECT_EQ(std::string(a.bytes(), a.length()), |
| 50 EXPECT_EQ(a.file_start, b.file_start); | 50 std::string(b.bytes(), b.length())); |
| 51 EXPECT_EQ(a.file_length, b.file_length); | |
| 52 if (!(std::isnan(a.file_modification_time) && | |
| 53 std::isnan(b.file_modification_time))) { | |
| 54 EXPECT_DOUBLE_EQ(a.file_modification_time, b.file_modification_time); | |
| 55 } | 51 } |
| 56 EXPECT_EQ(a.blob_uuid, b.blob_uuid); | 52 EXPECT_EQ(a.path(), b.path()); |
| 53 EXPECT_EQ(a.filesystem_url(), b.filesystem_url()); |
| 54 EXPECT_EQ(a.offset(), b.offset()); |
| 55 EXPECT_EQ(a.length(), b.length()); |
| 56 EXPECT_EQ(a.expected_modification_time(), b.expected_modification_time()); |
| 57 EXPECT_EQ(a.blob_uuid(), b.blob_uuid()); |
| 57 } | 58 } |
| 58 | 59 |
| 59 template <> | 60 template <> |
| 60 void ExpectEquality(const ExplodedHttpBody& a, const ExplodedHttpBody& b) { | 61 void ExpectEquality(const ExplodedHttpBody& a, const ExplodedHttpBody& b) { |
| 61 EXPECT_EQ(a.http_content_type, b.http_content_type); | 62 EXPECT_EQ(a.http_content_type, b.http_content_type); |
| 62 EXPECT_EQ(a.identifier, b.identifier); | 63 EXPECT_EQ(a.identifier, b.identifier); |
| 63 EXPECT_EQ(a.contains_passwords, b.contains_passwords); | 64 EXPECT_EQ(a.contains_passwords, b.contains_passwords); |
| 64 EXPECT_EQ(a.is_null, b.is_null); | 65 EXPECT_EQ(a.is_null, b.is_null); |
| 65 ExpectEquality(a.elements, b.elements); | 66 ExpectEquality(a.elements, b.elements); |
| 66 } | 67 } |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 } | 114 } |
| 114 | 115 |
| 115 void PopulateHttpBody(ExplodedHttpBody* http_body, | 116 void PopulateHttpBody(ExplodedHttpBody* http_body, |
| 116 std::vector<base::NullableString16>* referenced_files) { | 117 std::vector<base::NullableString16>* referenced_files) { |
| 117 http_body->is_null = false; | 118 http_body->is_null = false; |
| 118 http_body->identifier = 12345; | 119 http_body->identifier = 12345; |
| 119 http_body->contains_passwords = false; | 120 http_body->contains_passwords = false; |
| 120 http_body->http_content_type = NS16("text/foo"); | 121 http_body->http_content_type = NS16("text/foo"); |
| 121 | 122 |
| 122 ExplodedHttpBodyElement e1; | 123 ExplodedHttpBodyElement e1; |
| 123 e1.type = blink::WebHTTPBody::Element::TypeData; | 124 std::string test_body("foo"); |
| 124 e1.data = "foo"; | 125 e1.SetToBytes(test_body.data(), test_body.size()); |
| 125 http_body->elements.push_back(e1); | 126 http_body->elements.push_back(e1); |
| 126 | 127 |
| 127 ExplodedHttpBodyElement e2; | 128 ExplodedHttpBodyElement e2; |
| 128 e2.type = blink::WebHTTPBody::Element::TypeFile; | 129 e2.SetToFilePathRange(base::FilePath::FromUTF8Unsafe("file.txt"), 100, 1024, |
| 129 e2.file_path = NS16("file.txt"); | 130 base::Time::FromDoubleT(9999.0)); |
| 130 e2.file_start = 100; | |
| 131 e2.file_length = 1024; | |
| 132 e2.file_modification_time = 9999.0; | |
| 133 http_body->elements.push_back(e2); | 131 http_body->elements.push_back(e2); |
| 134 | 132 |
| 135 referenced_files->push_back(e2.file_path); | 133 referenced_files->push_back( |
| 134 base::NullableString16(e2.path().AsUTF16Unsafe(), false)); |
| 136 } | 135 } |
| 137 | 136 |
| 138 void PopulateFrameStateForBackwardsCompatTest( | 137 void PopulateFrameStateForBackwardsCompatTest( |
| 139 ExplodedFrameState* frame_state, | 138 ExplodedFrameState* frame_state, |
| 140 bool is_child) { | 139 bool is_child) { |
| 141 frame_state->url_string = NS16("http://chromium.org/"); | 140 frame_state->url_string = NS16("http://chromium.org/"); |
| 142 frame_state->referrer = NS16("http://google.com/"); | 141 frame_state->referrer = NS16("http://google.com/"); |
| 143 frame_state->referrer_policy = blink::WebReferrerPolicyDefault; | 142 frame_state->referrer_policy = blink::WebReferrerPolicyDefault; |
| 144 if (!is_child) | 143 if (!is_child) |
| 145 frame_state->target = NS16("target"); | 144 frame_state->target = NS16("target"); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 160 frame_state->document_state.push_back(NS16("2")); | 159 frame_state->document_state.push_back(NS16("2")); |
| 161 frame_state->document_state.push_back(NS16("file.txt")); | 160 frame_state->document_state.push_back(NS16("file.txt")); |
| 162 frame_state->document_state.push_back(NS16("displayName")); | 161 frame_state->document_state.push_back(NS16("displayName")); |
| 163 | 162 |
| 164 if (!is_child) { | 163 if (!is_child) { |
| 165 frame_state->http_body.http_content_type = NS16("foo/bar"); | 164 frame_state->http_body.http_content_type = NS16("foo/bar"); |
| 166 frame_state->http_body.identifier = 789; | 165 frame_state->http_body.identifier = 789; |
| 167 frame_state->http_body.is_null = false; | 166 frame_state->http_body.is_null = false; |
| 168 | 167 |
| 169 ExplodedHttpBodyElement e1; | 168 ExplodedHttpBodyElement e1; |
| 170 e1.type = blink::WebHTTPBody::Element::TypeData; | 169 std::string test_body("first data block"); |
| 171 e1.data = "first data block"; | 170 e1.SetToBytes(test_body.data(), test_body.size()); |
| 172 frame_state->http_body.elements.push_back(e1); | 171 frame_state->http_body.elements.push_back(e1); |
| 173 | 172 |
| 174 ExplodedHttpBodyElement e2; | 173 ExplodedHttpBodyElement e2; |
| 175 e2.type = blink::WebHTTPBody::Element::TypeFile; | 174 e2.SetToFilePath(base::FilePath::FromUTF8Unsafe("file.txt")); |
| 176 e2.file_path = NS16("file.txt"); | |
| 177 frame_state->http_body.elements.push_back(e2); | 175 frame_state->http_body.elements.push_back(e2); |
| 178 | 176 |
| 179 ExplodedHttpBodyElement e3; | 177 ExplodedHttpBodyElement e3; |
| 180 e3.type = blink::WebHTTPBody::Element::TypeData; | 178 std::string test_body2("data the second"); |
| 181 e3.data = "data the second"; | 179 e3.SetToBytes(test_body2.data(), test_body2.size()); |
| 182 frame_state->http_body.elements.push_back(e3); | 180 frame_state->http_body.elements.push_back(e3); |
| 183 | 181 |
| 184 ExplodedFrameState child_state; | 182 ExplodedFrameState child_state; |
| 185 PopulateFrameStateForBackwardsCompatTest(&child_state, true); | 183 PopulateFrameStateForBackwardsCompatTest(&child_state, true); |
| 186 frame_state->children.push_back(child_state); | 184 frame_state->children.push_back(child_state); |
| 187 } | 185 } |
| 188 } | 186 } |
| 189 | 187 |
| 190 void PopulatePageStateForBackwardsCompatTest(ExplodedPageState* page_state) { | 188 void PopulatePageStateForBackwardsCompatTest(ExplodedPageState* page_state) { |
| 191 page_state->referenced_files.push_back(NS16("file.txt")); | 189 page_state->referenced_files.push_back(NS16("file.txt")); |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 437 TEST_F(PageStateSerializationTest, BackwardsCompat_v21) { | 435 TEST_F(PageStateSerializationTest, BackwardsCompat_v21) { |
| 438 TestBackwardsCompat(21); | 436 TestBackwardsCompat(21); |
| 439 } | 437 } |
| 440 | 438 |
| 441 TEST_F(PageStateSerializationTest, BackwardsCompat_v22) { | 439 TEST_F(PageStateSerializationTest, BackwardsCompat_v22) { |
| 442 TestBackwardsCompat(22); | 440 TestBackwardsCompat(22); |
| 443 } | 441 } |
| 444 | 442 |
| 445 } // namespace | 443 } // namespace |
| 446 } // namespace content | 444 } // namespace content |
| OLD | NEW |