| @@ -379,46 +379,46 @@ output: [Text(text="junk <></>")] | |||||
| name: backslash_premature_before | name: backslash_premature_before | ||||
| label: a backslash before a quote before a space | label: a backslash before a quote before a space | ||||
| input: "<foo attribute="this is\\" quoted">blah</foo>" | input: "<foo attribute="this is\\" quoted">blah</foo>" | ||||
| output: [TagOpenOpen(showtag=True), Text(text="foo"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="attribute"), TagAttrEquals(), TagAttrQuote(), Text(text="this is\\\" quoted"), TagCloseOpen(padding=""), TagOpenClose(), Text(text="foo"), TagCloseClose()] | |||||
| output: [TagOpenOpen(showtag=True), Text(text="foo"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="attribute"), TagAttrEquals(), TagAttrQuote(), Text(text="this is\\\" quoted"), TagCloseOpen(padding=""), Text(text="blah"), TagOpenClose(), Text(text="foo"), TagCloseClose()] | |||||
| --- | --- | ||||
| name: backslash_premature_after | name: backslash_premature_after | ||||
| label: a backslash before a quote after a space | label: a backslash before a quote after a space | ||||
| input: "<foo attribute="this is \\"quoted">blah</foo>" | input: "<foo attribute="this is \\"quoted">blah</foo>" | ||||
| output: [TagOpenOpen(showtag=True), Text(text="foo"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="attribute"), TagAttrEquals(), TagAttrQuote(), Text(text="this is \\\"quoted"), TagCloseOpen(padding=""), TagOpenClose(), Text(text="foo"), TagCloseClose()] | |||||
| output: [TagOpenOpen(showtag=True), Text(text="foo"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="attribute"), TagAttrEquals(), TagAttrQuote(), Text(text="this is \\\"quoted"), TagCloseOpen(padding=""), Text(text="blah"), TagOpenClose(), Text(text="foo"), TagCloseClose()] | |||||
| --- | --- | ||||
| name: backslash_premature_middle | name: backslash_premature_middle | ||||
| label: a backslash before a quote in the middle of a word | label: a backslash before a quote in the middle of a word | ||||
| input: "<foo attribute="this i\\"s quoted">blah</foo>" | input: "<foo attribute="this i\\"s quoted">blah</foo>" | ||||
| output: [TagOpenOpen(showtag=True), Text(text="foo"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="attribute"), TagAttrEquals(), TagAttrQuote(), Text(text="this i\\\"s quoted"), TagCloseOpen(padding=""), TagOpenClose(), Text(text="foo"), TagCloseClose()] | |||||
| output: [TagOpenOpen(showtag=True), Text(text="foo"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="attribute"), TagAttrEquals(), TagAttrQuote(), Text(text="this i\\\"s quoted"), TagCloseOpen(padding=""), Text(text="blah"), TagOpenClose(), Text(text="foo"), TagCloseClose()] | |||||
| --- | --- | ||||
| name: backslash_adjacent | name: backslash_adjacent | ||||
| label: escaped quotes next to unescaped quotes | label: escaped quotes next to unescaped quotes | ||||
| input: "<foo attribute="\\"this is quoted\\"">blah</foo>" | input: "<foo attribute="\\"this is quoted\\"">blah</foo>" | ||||
| output: [TagOpenOpen(showtag=True), Text(text="foo"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="attribute"), TagAttrEquals(), TagAttrQuote(), Text(text="\\\"this is quoted\\\""), TagCloseOpen(padding=""), TagOpenClose(), Text(text="foo"), TagCloseClose()] | |||||
| output: [TagOpenOpen(showtag=True), Text(text="foo"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="attribute"), TagAttrEquals(), TagAttrQuote(), Text(text="\\\"this is quoted\\\""), TagCloseOpen(padding=""), Text(text="blah"), TagOpenClose(), Text(text="foo"), TagCloseClose()] | |||||
| --- | --- | ||||
| name: backslash_endquote | name: backslash_endquote | ||||
| label: backslashes before the end quote, causing the attribute to become unquoted | label: backslashes before the end quote, causing the attribute to become unquoted | ||||
| input: "<foo attribute="this_is quoted\\">blah</foo>" | input: "<foo attribute="this_is quoted\\">blah</foo>" | ||||
| output: [TagOpenOpen(showtag=True), Text(text="foo"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="attribute"), TagAttrEquals(), Text(text="\"this_is"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="quoted\\\""), TagCloseOpen(padding=""), TagOpenClose(), Text(text="foo"), TagCloseClose()] | |||||
| output: [TagOpenOpen(showtag=True), Text(text="foo"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="attribute"), TagAttrEquals(), Text(text="\"this_is"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="quoted\\\""), TagCloseOpen(padding=""), Text(text="blah"), TagOpenClose(), Text(text="foo"), TagCloseClose()] | |||||
| --- | --- | ||||
| name: backslash_double | name: backslash_double | ||||
| label: two adjacent backslashes, which do *not* affect the quote | label: two adjacent backslashes, which do *not* affect the quote | ||||
| input: "<foo attribute="this is\\\\" quoted">blah</foo>" | input: "<foo attribute="this is\\\\" quoted">blah</foo>" | ||||
| output: [TagOpenOpen(showtag=True), Text(text="foo"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="attribute"), TagAttrEquals(), TagAttrQuote(), Text(text="this is\\\\"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="quoted\""), TagCloseOpen(padding=""), TagOpenClose(), Text(text="foo"), TagCloseClose()] | |||||
| output: [TagOpenOpen(showtag=True), Text(text="foo"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="attribute"), TagAttrEquals(), TagAttrQuote(), Text(text="this is\\\\"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="quoted\""), TagCloseOpen(padding=""), Text(text="blah"), TagOpenClose(), Text(text="foo"), TagCloseClose()] | |||||
| --- | --- | ||||
| name: backslash_unaffecting | name: backslash_unaffecting | ||||
| label: backslashes near quotes, but not immediately adjacent, thus having no effect | label: backslashes near quotes, but not immediately adjacent, thus having no effect | ||||
| input: "<foo attribute="\\quote\\d" also="quote\\d\\">blah</foo>" | input: "<foo attribute="\\quote\\d" also="quote\\d\\">blah</foo>" | ||||
| output: [TagOpenOpen(showtag=True), Text(text="foo"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="attribute"), TagAttrEquals(), TagAttrQuote(), Text(text="\\quote\\d"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="also"), TagAttrEquals(), Text(text="\"quot\\ed\\\""), TagCloseOpen(padding=""), TagOpenClose(), Text(text="foo"), TagCloseClose()] | |||||
| output: [TagOpenOpen(showtag=True), Text(text="foo"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="attribute"), TagAttrEquals(), TagAttrQuote(), Text(text="\\quote\\d"), TagAttrStart(pad_first=" ", pad_before_eq="", pad_after_eq=""), Text(text="also"), TagAttrEquals(), Text(text="\"quote\\d\\\""), TagCloseOpen(padding=""), Text(text="blah"), TagOpenClose(), Text(text="foo"), TagCloseClose()] | |||||