diff --git a/src/__fixtures__/Events/07a-end_slash--void.json b/src/__fixtures__/Events/07a-end_slash--void.json new file mode 100644 index 000000000..83385bee6 --- /dev/null +++ b/src/__fixtures__/Events/07a-end_slash--void.json @@ -0,0 +1,48 @@ +{ + "name": "end slash: void element ending with />", + "input": "

Hold the line.", + "expected": [ + { + "event": "opentagname", + "startIndex": 0, + "endIndex": 3, + "data": ["hr"] + }, + { + "event": "opentag", + "startIndex": 0, + "endIndex": 6, + "data": ["hr", {}, false] + }, + { + "event": "closetag", + "startIndex": 0, + "endIndex": 6, + "data": ["hr", true] + }, + { + "event": "opentagname", + "startIndex": 7, + "endIndex": 9, + "data": ["p"] + }, + { + "event": "opentag", + "startIndex": 7, + "endIndex": 9, + "data": ["p", {}, false] + }, + { + "event": "text", + "startIndex": 10, + "endIndex": 23, + "data": ["Hold the line."] + }, + { + "event": "closetag", + "startIndex": 24, + "endIndex": 24, + "data": ["p", true] + } + ] +} diff --git a/src/__fixtures__/Events/07b-end_slash--void_without.json b/src/__fixtures__/Events/07b-end_slash--void_without.json new file mode 100644 index 000000000..5a832cb68 --- /dev/null +++ b/src/__fixtures__/Events/07b-end_slash--void_without.json @@ -0,0 +1,48 @@ +{ + "name": "end slash: void element ending with >", + "input": "


Hold the line.", + "expected": [ + { + "event": "opentagname", + "startIndex": 0, + "endIndex": 3, + "data": ["hr"] + }, + { + "event": "opentag", + "startIndex": 0, + "endIndex": 6, + "data": ["hr", {}, false] + }, + { + "event": "closetag", + "startIndex": 0, + "endIndex": 6, + "data": ["hr", true] + }, + { + "event": "opentagname", + "startIndex": 7, + "endIndex": 9, + "data": ["p"] + }, + { + "event": "opentag", + "startIndex": 7, + "endIndex": 9, + "data": ["p", {}, false] + }, + { + "event": "text", + "startIndex": 10, + "endIndex": 23, + "data": ["Hold the line."] + }, + { + "event": "closetag", + "startIndex": 24, + "endIndex": 24, + "data": ["p", true] + } + ] +} diff --git a/src/__fixtures__/Events/07c-end_slash--void_without--xmlMode.json b/src/__fixtures__/Events/07c-end_slash--void_without--xmlMode.json new file mode 100644 index 000000000..ae6e25ebf --- /dev/null +++ b/src/__fixtures__/Events/07c-end_slash--void_without--xmlMode.json @@ -0,0 +1,53 @@ +{ + "name": "end slash: void element ending with >, xmlMode=true", + "input": "


Hold the line.", + "options": { + "parser": { + "xmlMode": true + } + }, + "expected": [ + { + "event": "opentagname", + "startIndex": 0, + "endIndex": 3, + "data": ["hr"] + }, + { + "event": "opentag", + "startIndex": 0, + "endIndex": 6, + "data": ["hr", {}, false] + }, + { + "event": "opentagname", + "startIndex": 7, + "endIndex": 9, + "data": ["p"] + }, + { + "event": "opentag", + "startIndex": 7, + "endIndex": 9, + "data": ["p", {}, false] + }, + { + "event": "text", + "startIndex": 10, + "endIndex": 23, + "data": ["Hold the line."] + }, + { + "event": "closetag", + "startIndex": 24, + "endIndex": 24, + "data": ["p", true] + }, + { + "event": "closetag", + "startIndex": 24, + "endIndex": 24, + "data": ["hr", true] + } + ] +} diff --git a/src/__fixtures__/Events/07d-end_slash--non_void.json b/src/__fixtures__/Events/07d-end_slash--non_void.json new file mode 100644 index 000000000..44fc4fdb5 --- /dev/null +++ b/src/__fixtures__/Events/07d-end_slash--non_void.json @@ -0,0 +1,48 @@ +{ + "name": "end slash: non-void element ending with />", + "input": "

Hold the line.", + "expected": [ + { + "event": "opentagname", + "startIndex": 0, + "endIndex": 3, + "data": ["xx"] + }, + { + "event": "opentag", + "startIndex": 0, + "endIndex": 6, + "data": ["xx", {}, false] + }, + { + "event": "opentagname", + "startIndex": 7, + "endIndex": 9, + "data": ["p"] + }, + { + "event": "opentag", + "startIndex": 7, + "endIndex": 9, + "data": ["p", {}, false] + }, + { + "event": "text", + "startIndex": 10, + "endIndex": 23, + "data": ["Hold the line."] + }, + { + "event": "closetag", + "startIndex": 24, + "endIndex": 24, + "data": ["p", true] + }, + { + "event": "closetag", + "startIndex": 24, + "endIndex": 24, + "data": ["xx", true] + } + ] +} diff --git a/src/__fixtures__/Events/07e-end_slash--non_void--xmlmode.json b/src/__fixtures__/Events/07e-end_slash--non_void--xmlmode.json new file mode 100644 index 000000000..a3144f095 --- /dev/null +++ b/src/__fixtures__/Events/07e-end_slash--non_void--xmlmode.json @@ -0,0 +1,53 @@ +{ + "name": "end slash: non-void element ending with />, xmlMode=true", + "input": "

Hold the line.", + "options": { + "parser": { + "xmlMode": true + } + }, + "expected": [ + { + "event": "opentagname", + "startIndex": 0, + "endIndex": 3, + "data": ["xx"] + }, + { + "event": "opentag", + "startIndex": 0, + "endIndex": 6, + "data": ["xx", {}, false] + }, + { + "event": "closetag", + "startIndex": 0, + "endIndex": 6, + "data": ["xx", true] + }, + { + "event": "opentagname", + "startIndex": 7, + "endIndex": 9, + "data": ["p"] + }, + { + "event": "opentag", + "startIndex": 7, + "endIndex": 9, + "data": ["p", {}, false] + }, + { + "event": "text", + "startIndex": 10, + "endIndex": 23, + "data": ["Hold the line."] + }, + { + "event": "closetag", + "startIndex": 24, + "endIndex": 24, + "data": ["p", true] + } + ] +} diff --git a/src/__fixtures__/Events/07f-end_slash--non_void--recognize_self_closing.json b/src/__fixtures__/Events/07f-end_slash--non_void--recognize_self_closing.json new file mode 100644 index 000000000..623dafd49 --- /dev/null +++ b/src/__fixtures__/Events/07f-end_slash--non_void--recognize_self_closing.json @@ -0,0 +1,53 @@ +{ + "name": "end slash: non-void element ending with />, recognizeSelfClosing=true", + "input": "

Hold the line.", + "options": { + "parser": { + "recognizeSelfClosing": true + } + }, + "expected": [ + { + "event": "opentagname", + "startIndex": 0, + "endIndex": 3, + "data": ["xx"] + }, + { + "event": "opentag", + "startIndex": 0, + "endIndex": 6, + "data": ["xx", {}, false] + }, + { + "event": "closetag", + "startIndex": 0, + "endIndex": 6, + "data": ["xx", true] + }, + { + "event": "opentagname", + "startIndex": 7, + "endIndex": 9, + "data": ["p"] + }, + { + "event": "opentag", + "startIndex": 7, + "endIndex": 9, + "data": ["p", {}, false] + }, + { + "event": "text", + "startIndex": 10, + "endIndex": 23, + "data": ["Hold the line."] + }, + { + "event": "closetag", + "startIndex": 24, + "endIndex": 24, + "data": ["p", true] + } + ] +} diff --git a/src/__fixtures__/Events/07g-end_slash--consumed_by_attrib_value_in_void.json b/src/__fixtures__/Events/07g-end_slash--consumed_by_attrib_value_in_void.json new file mode 100644 index 000000000..36e67d2f5 --- /dev/null +++ b/src/__fixtures__/Events/07g-end_slash--consumed_by_attrib_value_in_void.json @@ -0,0 +1,54 @@ +{ + "name": "end slash: as part of attrib value of void element", + "input": "

Hold the line.", + "expected": [ + { + "event": "opentagname", + "startIndex": 0, + "endIndex": 4, + "data": ["img"] + }, + { + "event": "attribute", + "startIndex": 5, + "endIndex": 21, + "data": ["src", "gif.com/123/", null] + }, + { + "event": "opentag", + "startIndex": 0, + "endIndex": 21, + "data": ["img", { "src": "gif.com/123/" }, false] + }, + { + "event": "closetag", + "startIndex": 0, + "endIndex": 21, + "data": ["img", true] + }, + { + "event": "opentagname", + "startIndex": 22, + "endIndex": 24, + "data": ["p"] + }, + { + "event": "opentag", + "startIndex": 22, + "endIndex": 24, + "data": ["p", {}, false] + }, + { + "event": "text", + "startIndex": 25, + "endIndex": 38, + "data": ["Hold the line."] + }, + { + "event": "closetag", + "startIndex": 39, + "endIndex": 39, + "data": ["p", true] + } + ] +} diff --git a/src/__fixtures__/Events/07-self-closing.json b/src/__fixtures__/Events/07h-end_slash--consumed_by_attrib_value_in_non_void.json similarity index 62% rename from src/__fixtures__/Events/07-self-closing.json rename to src/__fixtures__/Events/07h-end_slash--consumed_by_attrib_value_in_non_void.json index d3d1c3392..fa5bc373e 100644 --- a/src/__fixtures__/Events/07-self-closing.json +++ b/src/__fixtures__/Events/07h-end_slash--consumed_by_attrib_value_in_non_void.json @@ -1,6 +1,6 @@ { - "name": "Self-closing tags", - "input": "Foo


", + "name": "end slash: as part of attrib value of non-void element", + "input": "Foo

Hold the line.", "expected": [ { "event": "opentagname", @@ -18,13 +18,7 @@ "event": "opentag", "startIndex": 0, "endIndex": 24, - "data": [ - "a", - { - "href": "http://test.com/" - }, - false - ] + "data": ["a", { "href": "http://test.com/" }, false] }, { "event": "text", @@ -41,20 +35,26 @@ { "event": "opentagname", "startIndex": 32, - "endIndex": 35, - "data": ["hr"] + "endIndex": 34, + "data": ["p"] }, { "event": "opentag", "startIndex": 32, - "endIndex": 38, - "data": ["hr", {}, false] + "endIndex": 34, + "data": ["p", {}, false] + }, + { + "event": "text", + "startIndex": 35, + "endIndex": 48, + "data": ["Hold the line."] }, { "event": "closetag", - "startIndex": 32, - "endIndex": 38, - "data": ["hr", true] + "startIndex": 49, + "endIndex": 49, + "data": ["p", true] } ] }