| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "core/dom/custom/CustomElementDescriptor.h" | 5 #include "core/dom/custom/CustomElementDescriptor.h" |
| 6 | 6 |
| 7 #include "core/dom/custom/CustomElementDescriptorHash.h" | 7 #include "core/dom/custom/CustomElementDescriptorHash.h" |
| 8 #include "core/dom/custom/CustomElementTestHelpers.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 9 #include "wtf/HashSet.h" | 10 #include "wtf/HashSet.h" |
| 10 #include "wtf/text/AtomicString.h" | 11 #include "wtf/text/AtomicString.h" |
| 11 | 12 |
| 12 namespace blink { | 13 namespace blink { |
| 13 | 14 |
| 15 class Element; |
| 16 |
| 14 TEST(CustomElementDescriptorTest, equal) | 17 TEST(CustomElementDescriptorTest, equal) |
| 15 { | 18 { |
| 16 CustomElementDescriptor myTypeExtension("my-button", "button"); | 19 CustomElementDescriptor myTypeExtension("my-button", "button"); |
| 17 CustomElementDescriptor again("my-button", "button"); | 20 CustomElementDescriptor again("my-button", "button"); |
| 18 EXPECT_TRUE(myTypeExtension == again) | 21 EXPECT_TRUE(myTypeExtension == again) |
| 19 << "two descriptors with the same name and local name should be equal"; | 22 << "two descriptors with the same name and local name should be equal"; |
| 20 } | 23 } |
| 21 | 24 |
| 22 TEST(CustomElementDescriptorTest, notEqual) | 25 TEST(CustomElementDescriptorTest, notEqual) |
| 23 { | 26 { |
| 24 CustomElementDescriptor myTypeExtension("my-button", "button"); | 27 CustomElementDescriptor myTypeExtension("my-button", "button"); |
| 25 CustomElementDescriptor collidingNewType("my-button", "my-button"); | 28 CustomElementDescriptor collidingNewType("my-button", "my-button"); |
| 26 EXPECT_FALSE(myTypeExtension == collidingNewType) | 29 EXPECT_FALSE(myTypeExtension == collidingNewType) |
| 27 << "type extension should not be equal to a non-type extension"; | 30 << "type extension should not be equal to a non-type extension"; |
| 28 } | 31 } |
| 29 | 32 |
| 30 TEST(CustomElementDescriptorTest, hashable) | 33 TEST(CustomElementDescriptorTest, hashable) |
| 31 { | 34 { |
| 32 HashSet<CustomElementDescriptor> descriptors; | 35 HashSet<CustomElementDescriptor> descriptors; |
| 33 descriptors.add(CustomElementDescriptor("foo-bar", "foo-bar")); | 36 descriptors.add(CustomElementDescriptor("foo-bar", "foo-bar")); |
| 34 EXPECT_TRUE( | 37 EXPECT_TRUE( |
| 35 descriptors.contains(CustomElementDescriptor("foo-bar", "foo-bar"))) | 38 descriptors.contains(CustomElementDescriptor("foo-bar", "foo-bar"))) |
| 36 << "the identical descriptor should be found in the hash set"; | 39 << "the identical descriptor should be found in the hash set"; |
| 37 EXPECT_FALSE(descriptors.contains(CustomElementDescriptor( | 40 EXPECT_FALSE(descriptors.contains(CustomElementDescriptor( |
| 38 "bad-poetry", | 41 "bad-poetry", |
| 39 "blockquote"))) | 42 "blockquote"))) |
| 40 << "an unrelated descriptor should not be found in the hash set"; | 43 << "an unrelated descriptor should not be found in the hash set"; |
| 41 } | 44 } |
| 42 | 45 |
| 46 TEST(CustomElementDescriptorTest, matches_autonomous) |
| 47 { |
| 48 CustomElementDescriptor descriptor("a-b", "a-b"); |
| 49 Element* element = CreateElement("a-b"); |
| 50 EXPECT_TRUE(descriptor.matches(*element)); |
| 51 } |
| 52 |
| 53 TEST(CustomElementDescriptorTest, |
| 54 matches_autonomous_shouldNotMatchCustomizedBuiltInElement) |
| 55 { |
| 56 CustomElementDescriptor descriptor("a-b", "a-b"); |
| 57 Element* element = CreateElement("futuretag").withIsAttribute("a-b"); |
| 58 EXPECT_FALSE(descriptor.matches(*element)); |
| 59 } |
| 60 |
| 61 TEST(CustomElementDescriptorTest, matches_customizedBuiltIn) |
| 62 { |
| 63 CustomElementDescriptor descriptor("a-b", "button"); |
| 64 Element* element = CreateElement("button").withIsAttribute("a-b"); |
| 65 EXPECT_TRUE(descriptor.matches(*element)); |
| 66 } |
| 67 |
| 68 TEST(CustomElementDescriptorTest, |
| 69 matches_customizedBuiltIn_shouldNotMatchAutonomousElement) |
| 70 { |
| 71 CustomElementDescriptor descriptor("a-b", "button"); |
| 72 Element* element = CreateElement("a-b"); |
| 73 EXPECT_FALSE(descriptor.matches(*element)); |
| 74 } |
| 75 |
| 76 TEST(CustomElementDescriptorTest, matches_elementNotInHTMLNamespaceDoesNotMatch) |
| 77 { |
| 78 CustomElementDescriptor descriptor("a-b", "a-b"); |
| 79 Element* element = CreateElement("a-b").inNamespace("data:text/plain,foo"); |
| 80 EXPECT_FALSE(descriptor.matches(*element)); |
| 81 } |
| 82 |
| 43 } // namespace blink | 83 } // namespace blink |
| OLD | NEW |