TEST(AtomicHTMLTokenTest, EmptyAttributeValueFromCompactHTMLToken) { HTMLToken token; token.beginStartTag('a'); token.addNewAttribute(); token.beginAttributeName(3); token.appendToAttributeName('b'); token.endAttributeName(4); token.addNewAttribute(); token.beginAttributeName(5); token.appendToAttributeName('c'); token.endAttributeName(6); token.beginAttributeValue(8); token.endAttributeValue(8); AtomicHTMLToken atoken(CompactHTMLToken(&token, TextPosition())); const blink::Attribute* attributeB = atoken.getAttributeItem( QualifiedName(AtomicString(), "b", AtomicString())); ASSERT_TRUE(attributeB); EXPECT_FALSE(attributeB->value().isNull()); EXPECT_TRUE(attributeB->value().isEmpty()); const blink::Attribute* attributeC = atoken.getAttributeItem( QualifiedName(AtomicString(), "c", AtomicString())); ASSERT_TRUE(attributeC); EXPECT_FALSE(attributeC->value().isNull()); EXPECT_TRUE(attributeC->value().isEmpty()); const blink::Attribute* attributeD = atoken.getAttributeItem( QualifiedName(AtomicString(), "d", AtomicString())); EXPECT_FALSE(attributeD); }