Browse Source

More template tests

master
J. King 1 year ago
parent
commit
9f5e5a39d1
  1. 4
      lib/Microformats/Parser.php
  2. 2
      tests/cases/mensbeam/default-settings/implied.html
  3. 104
      tests/cases/mensbeam/default-settings/template.html
  4. 128
      tests/cases/mensbeam/default-settings/template.json

4
lib/Microformats/Parser.php

@ -333,7 +333,7 @@ class Parser {
# set the value of that "rels" key to an array of all unique items # set the value of that "rels" key to an array of all unique items
# in the set of rel values unioned with the current array value # in the set of rel values unioned with the current array value
# of the "rels" key, sorted alphabetically. # of the "rels" key, sorted alphabetically.
// NOTE: sorting and uniqueness filtering will be done later // NOTE: sorting and uniqueness filtering will be done later
array_push($out['rel-urls'][$url]['rels'], ...$rels); array_push($out['rel-urls'][$url]['rels'], ...$rels);
} }
// sort and clean rel microformats // sort and clean rel microformats
@ -496,7 +496,7 @@ class Parser {
* Properties are valid only for certain Microformat dialects (hence the * Properties are valid only for certain Microformat dialects (hence the
* $types parameter), and some properties are derived from link relations * $types parameter), and some properties are derived from link relations
* rather than class names (hence the $node parameter). Additionally some * rather than class names (hence the $node parameter). Additionally some
* properties can imply other root classes. These are appended to the * properties can imply other root classes. These are appended to the
* &$classes reference when not already in the class list. * &$classes reference when not already in the class list.
* *
* The returned information is an indexed array of indexed arrays each * The returned information is an indexed array of indexed arrays each

2
tests/cases/mensbeam/default-settings/implied.html

@ -1,5 +1,5 @@
<!-- <!--
Despite two corpuses having tests for implied properties, one case for Despite two corpuses having tests for implied properties, one case for
implied "url" is still not covered except by this test. implied "url" is still not covered except by this test.
--> -->

104
tests/cases/mensbeam/default-settings/template.html

@ -1,65 +1,136 @@
<!-- <!--
This tests various cases where templates should be discounted from This tests various cases where templates should be discounted from
processing. processing.
--> -->
<!-- None of these implied properties should match --> <!--
<div class="h-test"> None of these implied properties should match because they are template
content
-->
<div class="h-1-test">
<template> <template>
<img alt="TEMPLATE!"> <img alt="TEMPLATE!">
</template> </template>
</div> </div>
<div class="h-test"> <div class="h-2-test">
<template> <template>
<area alt="TEMPLATE!"> <area alt="TEMPLATE!">
</template> </template>
</div> </div>
<div class="h-test"> <div class="h-3-test">
<template> <template>
<abbr title="TEMPLATE!"></abbr> <abbr title="TEMPLATE!"></abbr>
</template> </template>
</div> </div>
<div class="h-test"> <div class="h-4-test">
<template> <template>
<img src="TEMPLATE!"> <img src="TEMPLATE!">
</template> </template>
</div> </div>
<div class="h-test"> <div class="h-5-test">
<template> <template>
<object data="TEMPLATE!"></object> <object data="TEMPLATE!"></object>
</template> </template>
</div> </div>
<div class="h-test"> <div class="h-6-test">
<template> <template>
<a href="TEMPLATE!"></a> <a href="TEMPLATE!"></a>
</template> </template>
</div> </div>
<div class="h-test"> <div class="h-7-test">
<template> <template>
<area href="TEMPLATE!"> <area href="TEMPLATE!">
</template> </template>
</div> </div>
<!--
None of these implied properties should match because elements which must
be only-children are not.
-->
<div class="h-8-test">
<template></template>
<img alt="TEMPLATE!"> PASS
</div>
<div class="h-9-test">
<template></template>
<area alt="TEMPLATE!">
</div>
<div class="h-10-test">
<template></template>
<abbr title="TEMPLATE!"></abbr>
</div>
<div class="h-11-test">
<template></template>
<div>
<img alt="TEMPLATE!"> PASS
</div>
</div>
<div class="h-12-test">
<template></template>
<div>
<area alt="TEMPLATE!">
</div>
</div>
<div class="h-13-test">
<template></template>
<div>
<abbr title="TEMPLATE!"></abbr>
</div>
</div>
<div class="h-14-test">
<template></template>
<div>
<img src="TEMPLATE!"> PASS
</div>
</div>
<div class="h-15-test">
<template></template>
<div>
<object data="TEMPLATE!"></object>
</div>
</div>
<div class="h-16-test">
<template></template>
<div>
<a href="TEMPLATE!"></a>
</div>
</div>
<div class="h-17-test">
<template></template>
<div>
<area href="TEMPLATE!">
</div>
</div>
<!-- This is not a microformat --> <!-- This is not a microformat -->
<template class="h-test"> <template class="h-18-test">
<div class="p-name">TEMPLATE!</div> <div class="p-name">TEMPLATE!</div>
</template> </template>
<!-- This is not a microformat, either --> <!-- This is not a microformat, either -->
<template> <template>
<div class="h-test"> <div class="h-19-test">
<div class="p-name">TEMPLATE!</div> <div class="p-name">TEMPLATE!</div>
</div> </div>
</template> </template>
<!-- The links here should not appear in the global rel microformat list --> <!-- The links here should not appear in the global rel microformat list -->
<div class="h-test"> <div class="h-20-test">
<span class="p-name">TEST</span> <span class="p-name">TEST</span>
<template> <template>
<a rel="TEMPLATE!" href="a"></a> <a rel="TEMPLATE!" href="a"></a>
@ -69,10 +140,17 @@
</div> </div>
<!-- Templates also should not appear in textContent --> <!-- Templates also should not appear in textContent -->
<div class="h-test"> <div class="h-21-test">
<span class="p-name"> <span class="p-name">
I am I am
<template>NOT</template> <template>NOT</template>
the King! the King!
</span> </span>
</div> </div>
<!-- Not even otherwise valid value-title data is accepted -->
<div class="h-22-test">
<div class="p-name">
<template class="value-title" title="TEMPLATE!"></template>
</div>
</div>

128
tests/cases/mensbeam/default-settings/template.json

@ -2,7 +2,7 @@
"items": [ "items": [
{ {
"type": [ "type": [
"h-test" "h-1-test"
], ],
"properties": { "properties": {
"name": [ "name": [
@ -12,7 +12,7 @@
}, },
{ {
"type": [ "type": [
"h-test" "h-2-test"
], ],
"properties": { "properties": {
"name": [ "name": [
@ -22,7 +22,7 @@
}, },
{ {
"type": [ "type": [
"h-test" "h-3-test"
], ],
"properties": { "properties": {
"name": [ "name": [
@ -32,7 +32,7 @@
}, },
{ {
"type": [ "type": [
"h-test" "h-4-test"
], ],
"properties": { "properties": {
"name": [ "name": [
@ -42,7 +42,7 @@
}, },
{ {
"type": [ "type": [
"h-test" "h-5-test"
], ],
"properties": { "properties": {
"name": [ "name": [
@ -52,7 +52,7 @@
}, },
{ {
"type": [ "type": [
"h-test" "h-6-test"
], ],
"properties": { "properties": {
"name": [ "name": [
@ -62,7 +62,7 @@
}, },
{ {
"type": [ "type": [
"h-test" "h-7-test"
], ],
"properties": { "properties": {
"name": [ "name": [
@ -72,7 +72,107 @@
}, },
{ {
"type": [ "type": [
"h-test" "h-8-test"
],
"properties": {
"name": [
"TEMPLATE! PASS"
]
}
},
{
"type": [
"h-9-test"
],
"properties": {
"name": [
""
]
}
},
{
"type": [
"h-10-test"
],
"properties": {
"name": [
""
]
}
},
{
"type": [
"h-11-test"
],
"properties": {
"name": [
"TEMPLATE! PASS"
]
}
},
{
"type": [
"h-12-test"
],
"properties": {
"name": [
""
]
}
},
{
"type": [
"h-13-test"
],
"properties": {
"name": [
""
]
}
},
{
"type": [
"h-14-test"
],
"properties": {
"name": [
"http://example.com/TEMPLATE! PASS"
]
}
},
{
"type": [
"h-15-test"
],
"properties": {
"name": [
""
]
}
},
{
"type": [
"h-16-test"
],
"properties": {
"name": [
""
]
}
},
{
"type": [
"h-17-test"
],
"properties": {
"name": [
""
]
}
},
{
"type": [
"h-20-test"
], ],
"properties": { "properties": {
"name": [ "name": [
@ -82,13 +182,23 @@
}, },
{ {
"type": [ "type": [
"h-test" "h-21-test"
], ],
"properties": { "properties": {
"name": [ "name": [
"I am the King!" "I am the King!"
] ]
} }
},
{
"type": [
"h-22-test"
],
"properties": {
"name": [
""
]
}
} }
], ],
"rels": {}, "rels": {},

Loading…
Cancel
Save