OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2014, Google Inc. All rights reserved. | 2 * Copyright (c) 2014, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 visitor->Trace(children_changed_nodes_); | 242 visitor->Trace(children_changed_nodes_); |
243 visitor->Trace(merge_text_nodes_records_); | 243 visitor->Trace(merge_text_nodes_records_); |
244 visitor->Trace(move_tree_to_new_document_nodes_); | 244 visitor->Trace(move_tree_to_new_document_nodes_); |
245 visitor->Trace(removed_children_nodes_); | 245 visitor->Trace(removed_children_nodes_); |
246 visitor->Trace(removed_nodes_); | 246 visitor->Trace(removed_nodes_); |
247 visitor->Trace(split_text_nodes_); | 247 visitor->Trace(split_text_nodes_); |
248 visitor->Trace(updated_character_data_records_); | 248 visitor->Trace(updated_character_data_records_); |
249 SynchronousMutationObserver::Trace(visitor); | 249 SynchronousMutationObserver::Trace(visitor); |
250 } | 250 } |
251 | 251 |
| 252 class TestDocumentShutdownObserver |
| 253 : public GarbageCollectedFinalized<TestDocumentShutdownObserver>, |
| 254 public DocumentShutdownObserver { |
| 255 USING_GARBAGE_COLLECTED_MIXIN(TestDocumentShutdownObserver); |
| 256 |
| 257 public: |
| 258 TestDocumentShutdownObserver(Document&); |
| 259 virtual ~TestDocumentShutdownObserver() = default; |
| 260 |
| 261 int CountContextDestroyedCalled() const { |
| 262 return context_destroyed_called_counter_; |
| 263 } |
| 264 |
| 265 DECLARE_TRACE(); |
| 266 |
| 267 private: |
| 268 // Implement |DocumentShutdownObserver| member functions. |
| 269 void ContextDestroyed(Document*) final; |
| 270 |
| 271 int context_destroyed_called_counter_ = 0; |
| 272 |
| 273 DISALLOW_COPY_AND_ASSIGN(TestDocumentShutdownObserver); |
| 274 }; |
| 275 |
| 276 TestDocumentShutdownObserver::TestDocumentShutdownObserver(Document& document) { |
| 277 SetContext(&document); |
| 278 } |
| 279 |
| 280 void TestDocumentShutdownObserver::ContextDestroyed(Document*) { |
| 281 ++context_destroyed_called_counter_; |
| 282 } |
| 283 |
| 284 DEFINE_TRACE(TestDocumentShutdownObserver) { |
| 285 DocumentShutdownObserver::Trace(visitor); |
| 286 } |
| 287 |
252 class MockValidationMessageClient | 288 class MockValidationMessageClient |
253 : public GarbageCollectedFinalized<MockValidationMessageClient>, | 289 : public GarbageCollectedFinalized<MockValidationMessageClient>, |
254 public ValidationMessageClient { | 290 public ValidationMessageClient { |
255 USING_GARBAGE_COLLECTED_MIXIN(MockValidationMessageClient); | 291 USING_GARBAGE_COLLECTED_MIXIN(MockValidationMessageClient); |
256 | 292 |
257 public: | 293 public: |
258 MockValidationMessageClient() { Reset(); } | 294 MockValidationMessageClient() { Reset(); } |
259 void Reset() { | 295 void Reset() { |
260 show_validation_message_was_called = false; | 296 show_validation_message_was_called = false; |
261 will_unload_document_was_called = false; | 297 will_unload_document_was_called = false; |
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
725 EXPECT_EQ(3u, observer.UpdatedCharacterDataRecords()[2]->new_length_); | 761 EXPECT_EQ(3u, observer.UpdatedCharacterDataRecords()[2]->new_length_); |
726 | 762 |
727 replace_sample->replaceData(6, 4, "ghi", ASSERT_NO_EXCEPTION); | 763 replace_sample->replaceData(6, 4, "ghi", ASSERT_NO_EXCEPTION); |
728 ASSERT_EQ(4u, observer.UpdatedCharacterDataRecords().size()); | 764 ASSERT_EQ(4u, observer.UpdatedCharacterDataRecords().size()); |
729 EXPECT_EQ(replace_sample, observer.UpdatedCharacterDataRecords()[3]->node_); | 765 EXPECT_EQ(replace_sample, observer.UpdatedCharacterDataRecords()[3]->node_); |
730 EXPECT_EQ(6u, observer.UpdatedCharacterDataRecords()[3]->offset_); | 766 EXPECT_EQ(6u, observer.UpdatedCharacterDataRecords()[3]->offset_); |
731 EXPECT_EQ(4u, observer.UpdatedCharacterDataRecords()[3]->old_length_); | 767 EXPECT_EQ(4u, observer.UpdatedCharacterDataRecords()[3]->old_length_); |
732 EXPECT_EQ(3u, observer.UpdatedCharacterDataRecords()[3]->new_length_); | 768 EXPECT_EQ(3u, observer.UpdatedCharacterDataRecords()[3]->new_length_); |
733 } | 769 } |
734 | 770 |
| 771 TEST_F(DocumentTest, DocumentShutdownNotifier) { |
| 772 auto& observer = *new TestDocumentShutdownObserver(GetDocument()); |
| 773 |
| 774 EXPECT_EQ(GetDocument(), observer.LifecycleContext()); |
| 775 EXPECT_EQ(0, observer.CountContextDestroyedCalled()); |
| 776 |
| 777 GetDocument().Shutdown(); |
| 778 EXPECT_EQ(nullptr, observer.LifecycleContext()); |
| 779 EXPECT_EQ(1, observer.CountContextDestroyedCalled()); |
| 780 } |
| 781 |
735 // This tests that meta-theme-color can be found correctly | 782 // This tests that meta-theme-color can be found correctly |
736 TEST_F(DocumentTest, ThemeColor) { | 783 TEST_F(DocumentTest, ThemeColor) { |
737 { | 784 { |
738 SetHtmlInnerHTML( | 785 SetHtmlInnerHTML( |
739 "<meta name=\"theme-color\" content=\"#00ff00\">" | 786 "<meta name=\"theme-color\" content=\"#00ff00\">" |
740 "<body>"); | 787 "<body>"); |
741 EXPECT_EQ(Color(0, 255, 0), GetDocument().ThemeColor()) | 788 EXPECT_EQ(Color(0, 255, 0), GetDocument().ThemeColor()) |
742 << "Theme color should be bright green."; | 789 << "Theme color should be bright green."; |
743 } | 790 } |
744 | 791 |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
866 EXPECT_EQ(DocumentLifecycle::kVisualUpdatePending, | 913 EXPECT_EQ(DocumentLifecycle::kVisualUpdatePending, |
867 GetDocument().Lifecycle().GetState()); | 914 GetDocument().Lifecycle().GetState()); |
868 | 915 |
869 GetDocument().EnsurePaintLocationDataValidForNode( | 916 GetDocument().EnsurePaintLocationDataValidForNode( |
870 GetDocument().getElementById("stickyChild")); | 917 GetDocument().getElementById("stickyChild")); |
871 EXPECT_EQ(DocumentLifecycle::kCompositingInputsClean, | 918 EXPECT_EQ(DocumentLifecycle::kCompositingInputsClean, |
872 GetDocument().Lifecycle().GetState()); | 919 GetDocument().Lifecycle().GetState()); |
873 } | 920 } |
874 | 921 |
875 } // namespace blink | 922 } // namespace blink |
OLD | NEW |