Browse Source

More template tests

master
J. King 11 months 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
# in the set of rel values unioned with the current array value
# 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);
}
// sort and clean rel microformats
@ -496,7 +496,7 @@ class Parser {
* Properties are valid only for certain Microformat dialects (hence the
* $types parameter), and some properties are derived from link relations
* 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.
*
* 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.
-->

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

@ -1,65 +1,136 @@
<!--
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>
<img alt="TEMPLATE!">
</template>
</div>
<div class="h-test">
<div class="h-2-test">
<template>
<area alt="TEMPLATE!">
</template>
</div>
<div class="h-test">
<div class="h-3-test">
<template>
<abbr title="TEMPLATE!"></abbr>
</template>
</div>
<div class="h-test">
<div class="h-4-test">
<template>
<img src="TEMPLATE!">
</template>
</div>
<div class="h-test">
<div class="h-5-test">
<template>
<object data="TEMPLATE!"></object>
</template>
</div>
<div class="h-test">
<div class="h-6-test">
<template>
<a href="TEMPLATE!"></a>
</template>
</div>
<div class="h-test">
<div class="h-7-test">
<template>
<area href="TEMPLATE!">
</template>
</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 -->
<template class="h-test">
<template class="h-18-test">
<div class="p-name">TEMPLATE!</div>
</template>
<!-- This is not a microformat, either -->
<template>
<div class="h-test">
<div class="h-19-test">
<div class="p-name">TEMPLATE!</div>
</div>
</template>
<!-- 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>
<template>
<a rel="TEMPLATE!" href="a"></a>
@ -69,10 +140,17 @@
</div>
<!-- Templates also should not appear in textContent -->
<div class="h-test">
<div class="h-21-test">
<span class="p-name">
I am
<template>NOT</template>
the King!
</span>
</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": [
{
"type": [
"h-test"
"h-1-test"
],
"properties": {
"name": [
@ -12,7 +12,7 @@
},
{
"type": [
"h-test"
"h-2-test"
],
"properties": {
"name": [
@ -22,7 +22,7 @@
},
{
"type": [
"h-test"
"h-3-test"
],
"properties": {
"name": [
@ -32,7 +32,7 @@
},
{
"type": [
"h-test"
"h-4-test"
],
"properties": {
"name": [
@ -42,7 +42,7 @@
},
{
"type": [
"h-test"
"h-5-test"
],
"properties": {
"name": [
@ -52,7 +52,7 @@
},
{
"type": [
"h-test"
"h-6-test"
],
"properties": {
"name": [
@ -62,7 +62,7 @@
},
{
"type": [
"h-test"
"h-7-test"
],
"properties": {
"name": [
@ -72,7 +72,107 @@
},
{
"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": {
"name": [
@ -82,13 +182,23 @@
},
{
"type": [
"h-test"
"h-21-test"
],
"properties": {
"name": [
"I am the King!"
]
}
},
{
"type": [
"h-22-test"
],
"properties": {
"name": [
""
]
}
}
],
"rels": {},

Loading…
Cancel
Save