Skip to content

Commit 3d79ea5

Browse files
committed
Handle uppercase case insensitivity attribute flag.
1 parent 7389f5a commit 3d79ea5

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

src/__tests__/attributes.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,10 @@ test('insensitive attribute selector 3', '[href=test i]', (t, tree) => {
334334
t.deepEqual(tree.nodes[0].nodes[0].value, 'test');
335335
t.deepEqual(tree.nodes[0].nodes[0].insensitive, true);
336336
});
337+
test('capitalized insensitive attribute selector 3', '[href=test I]', (t, tree) => {
338+
t.deepEqual(tree.nodes[0].nodes[0].value, 'test');
339+
t.deepEqual(tree.nodes[0].nodes[0].insensitive, true);
340+
});
337341

338342
test('extraneous non-combinating whitespace', ' [href] , [class] ', (t, tree) => {
339343
t.deepEqual(tree.nodes[0].nodes[0].attribute, 'href');

src/parser.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -275,10 +275,11 @@ export default class Parser {
275275
}
276276
lastAdded = 'value';
277277
} else {
278-
let insensitive = (content === 'i');
278+
let insensitive = (content === 'i' || content === "I");
279279
if (node.value && (node.quoteMark || spaceAfterMeaningfulToken)) {
280-
node.insensitive = true;
281-
if (!insensitive) {
280+
node.insensitive = insensitive;
281+
if (!insensitive || content === "I") {
282+
ensureObject(node, 'raws');
282283
node.raws.insensitiveFlag = content;
283284
}
284285
lastAdded = 'insensitive';

0 commit comments

Comments
 (0)