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 <cmath> | 5 #include <cmath> |
6 | 6 |
7 #include "base/base64.h" | 7 #include "base/base64.h" |
8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
10 #include "base/pickle.h" | 10 #include "base/pickle.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 } | 63 } |
64 | 64 |
65 template <> | 65 template <> |
66 void ExpectEquality(const ExplodedFrameState& a, const ExplodedFrameState& b) { | 66 void ExpectEquality(const ExplodedFrameState& a, const ExplodedFrameState& b) { |
67 EXPECT_EQ(a.url_string, b.url_string); | 67 EXPECT_EQ(a.url_string, b.url_string); |
68 EXPECT_EQ(a.referrer, b.referrer); | 68 EXPECT_EQ(a.referrer, b.referrer); |
69 EXPECT_EQ(a.referrer_policy, b.referrer_policy); | 69 EXPECT_EQ(a.referrer_policy, b.referrer_policy); |
70 EXPECT_EQ(a.target, b.target); | 70 EXPECT_EQ(a.target, b.target); |
71 EXPECT_EQ(a.state_object, b.state_object); | 71 EXPECT_EQ(a.state_object, b.state_object); |
72 ExpectEquality(a.document_state, b.document_state); | 72 ExpectEquality(a.document_state, b.document_state); |
| 73 EXPECT_EQ(a.scroll_restoration_type, b.scroll_restoration_type); |
73 EXPECT_EQ(a.pinch_viewport_scroll_offset, b.pinch_viewport_scroll_offset); | 74 EXPECT_EQ(a.pinch_viewport_scroll_offset, b.pinch_viewport_scroll_offset); |
74 EXPECT_EQ(a.scroll_offset, b.scroll_offset); | 75 EXPECT_EQ(a.scroll_offset, b.scroll_offset); |
75 EXPECT_EQ(a.item_sequence_number, b.item_sequence_number); | 76 EXPECT_EQ(a.item_sequence_number, b.item_sequence_number); |
76 EXPECT_EQ(a.document_sequence_number, b.document_sequence_number); | 77 EXPECT_EQ(a.document_sequence_number, b.document_sequence_number); |
77 EXPECT_EQ(a.page_scale_factor, b.page_scale_factor); | 78 EXPECT_EQ(a.page_scale_factor, b.page_scale_factor); |
78 ExpectEquality(a.http_body, b.http_body); | 79 ExpectEquality(a.http_body, b.http_body); |
79 ExpectEquality(a.children, b.children); | 80 ExpectEquality(a.children, b.children); |
80 } | 81 } |
81 | 82 |
82 void ExpectEquality(const ExplodedPageState& a, const ExplodedPageState& b) { | 83 void ExpectEquality(const ExplodedPageState& a, const ExplodedPageState& b) { |
83 ExpectEquality(a.referenced_files, b.referenced_files); | 84 ExpectEquality(a.referenced_files, b.referenced_files); |
84 ExpectEquality(a.top, b.top); | 85 ExpectEquality(a.top, b.top); |
85 } | 86 } |
86 | 87 |
87 //----------------------------------------------------------------------------- | 88 //----------------------------------------------------------------------------- |
88 | 89 |
89 class PageStateSerializationTest : public testing::Test { | 90 class PageStateSerializationTest : public testing::Test { |
90 public: | 91 public: |
91 void PopulateFrameState(ExplodedFrameState* frame_state) { | 92 void PopulateFrameState(ExplodedFrameState* frame_state) { |
92 // Invent some data for the various fields. | 93 // Invent some data for the various fields. |
93 frame_state->url_string = NS16("http://dev.chromium.org/"); | 94 frame_state->url_string = NS16("http://dev.chromium.org/"); |
94 frame_state->referrer = NS16("https://www.google.com/search?q=dev.chromium.o
rg"); | 95 frame_state->referrer = NS16("https://www.google.com/search?q=dev.chromium.o
rg"); |
95 frame_state->referrer_policy = blink::WebReferrerPolicyAlways; | 96 frame_state->referrer_policy = blink::WebReferrerPolicyAlways; |
96 frame_state->target = NS16("foo"); | 97 frame_state->target = NS16("foo"); |
97 frame_state->state_object = NS16(NULL); | 98 frame_state->state_object = NS16(NULL); |
98 frame_state->document_state.push_back(NS16("1")); | 99 frame_state->document_state.push_back(NS16("1")); |
99 frame_state->document_state.push_back(NS16("q")); | 100 frame_state->document_state.push_back(NS16("q")); |
100 frame_state->document_state.push_back(NS16("text")); | 101 frame_state->document_state.push_back(NS16("text")); |
101 frame_state->document_state.push_back(NS16("dev.chromium.org")); | 102 frame_state->document_state.push_back(NS16("dev.chromium.org")); |
| 103 frame_state->scroll_restoration_type = |
| 104 blink::WebHistoryScrollRestorationManual; |
102 frame_state->pinch_viewport_scroll_offset = gfx::PointF(10, 15); | 105 frame_state->pinch_viewport_scroll_offset = gfx::PointF(10, 15); |
103 frame_state->scroll_offset = gfx::Point(0, 100); | 106 frame_state->scroll_offset = gfx::Point(0, 100); |
104 frame_state->item_sequence_number = 1; | 107 frame_state->item_sequence_number = 1; |
105 frame_state->document_sequence_number = 2; | 108 frame_state->document_sequence_number = 2; |
106 frame_state->frame_sequence_number = 3; | 109 frame_state->frame_sequence_number = 3; |
107 frame_state->page_scale_factor = 2.0; | 110 frame_state->page_scale_factor = 2.0; |
108 } | 111 } |
109 | 112 |
110 void PopulateHttpBody(ExplodedHttpBody* http_body, | 113 void PopulateHttpBody(ExplodedHttpBody* http_body, |
111 std::vector<base::NullableString16>* referenced_files) { | 114 std::vector<base::NullableString16>* referenced_files) { |
(...skipping 19 matching lines...) Expand all Loading... |
131 } | 134 } |
132 | 135 |
133 void PopulateFrameStateForBackwardsCompatTest( | 136 void PopulateFrameStateForBackwardsCompatTest( |
134 ExplodedFrameState* frame_state, | 137 ExplodedFrameState* frame_state, |
135 bool is_child) { | 138 bool is_child) { |
136 frame_state->url_string = NS16("http://chromium.org/"); | 139 frame_state->url_string = NS16("http://chromium.org/"); |
137 frame_state->referrer = NS16("http://google.com/"); | 140 frame_state->referrer = NS16("http://google.com/"); |
138 frame_state->referrer_policy = blink::WebReferrerPolicyDefault; | 141 frame_state->referrer_policy = blink::WebReferrerPolicyDefault; |
139 if (!is_child) | 142 if (!is_child) |
140 frame_state->target = NS16("target"); | 143 frame_state->target = NS16("target"); |
| 144 frame_state->scroll_restoration_type = |
| 145 blink::WebHistoryScrollRestorationAuto; |
141 frame_state->pinch_viewport_scroll_offset = gfx::PointF(-1, -1); | 146 frame_state->pinch_viewport_scroll_offset = gfx::PointF(-1, -1); |
142 frame_state->scroll_offset = gfx::Point(42, -42); | 147 frame_state->scroll_offset = gfx::Point(42, -42); |
143 frame_state->item_sequence_number = 123; | 148 frame_state->item_sequence_number = 123; |
144 frame_state->document_sequence_number = 456; | 149 frame_state->document_sequence_number = 456; |
145 frame_state->frame_sequence_number = 789; | 150 frame_state->frame_sequence_number = 789; |
146 frame_state->page_scale_factor = 2.0f; | 151 frame_state->page_scale_factor = 2.0f; |
147 | 152 |
148 frame_state->document_state.push_back( | 153 frame_state->document_state.push_back( |
149 NS16("\n\r?% WebKit serialized form state version 8 \n\r=&")); | 154 NS16("\n\r?% WebKit serialized form state version 8 \n\r=&")); |
150 frame_state->document_state.push_back(NS16("form key")); | 155 frame_state->document_state.push_back(NS16("form key")); |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
421 } | 426 } |
422 | 427 |
423 TEST_F(PageStateSerializationTest, BackwardsCompat_v18) { | 428 TEST_F(PageStateSerializationTest, BackwardsCompat_v18) { |
424 TestBackwardsCompat(18); | 429 TestBackwardsCompat(18); |
425 } | 430 } |
426 | 431 |
427 TEST_F(PageStateSerializationTest, BackwardsCompat_v20) { | 432 TEST_F(PageStateSerializationTest, BackwardsCompat_v20) { |
428 TestBackwardsCompat(20); | 433 TestBackwardsCompat(20); |
429 } | 434 } |
430 | 435 |
| 436 TEST_F(PageStateSerializationTest, BackwardsCompat_v21) { |
| 437 TestBackwardsCompat(21); |
| 438 } |
| 439 |
431 } // namespace | 440 } // namespace |
432 } // namespace content | 441 } // namespace content |
OLD | NEW |