Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

⬆️ Bump files with dotnet-file sync #136

Merged
merged 1 commit into from
Oct 9, 2024
Merged

⬆️ Bump files with dotnet-file sync #136

merged 1 commit into from
Oct 9, 2024

Conversation

devlooped-bot
Copy link
Member

@devlooped-bot devlooped-bot commented Jun 15, 2024

devlooped/oss

clarius/pages

@devlooped-bot devlooped-bot force-pushed the dotnet-file-sync branch 3 times, most recently from 11bdd0a to 980b162 Compare June 20, 2024 01:03
@devlooped-bot devlooped-bot force-pushed the dotnet-file-sync branch 4 times, most recently from 56e75d2 to 0a76f53 Compare July 2, 2024 01:07
@devlooped-bot devlooped-bot force-pushed the dotnet-file-sync branch 4 times, most recently from 2006936 to 1947784 Compare July 9, 2024 00:57
@devlooped-bot devlooped-bot force-pushed the dotnet-file-sync branch 2 times, most recently from 6b4034a to bce068a Compare July 16, 2024 02:04
@devlooped-bot devlooped-bot force-pushed the dotnet-file-sync branch 2 times, most recently from e454e80 to 0bae307 Compare July 23, 2024 02:09
@devlooped-bot
Copy link
Member Author

devlooped-bot commented Aug 8, 2024

111 passed 111 passed

🧪 Details on Ubuntu 22.04.5 LTS

✅ AttributeSelectorNormalizesQuotes(expression: "[[data*='hello world']]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data*="hello world"]]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data='hello world']]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data="hello world"]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data=hello world]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()
="hello world"]]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()="hello world"]]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()=hello world]]", xpath: "[[text()="hello world"]]")
✅ CanChangeToUpperCaseHtml
✅ CanParseAttributeSelector(expression: "[[ role= ui ]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role = ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role]]", attributeName: "role", attributeValue: null, matching: null)
✅ CanParseAttributeSelector(expression: "[[role*=ui]]", attributeName: "role", attributeValue: "ui", matching: Substring)
✅ CanParseAttributeSelector(expression: "[[role^=ui]]", attributeName: "role", attributeValue: "ui", matching: Prefix)
✅ CanParseAttributeSelector(expression: "[[role=ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role|=ui]]", attributeName: "role", attributeValue: "ui", matching: Dash)
✅ CanParseAttributeSelector(expression: "[[role~=ui]]", attributeName: "role", attributeValue: "ui", matching: Includes)
✅ CanParseAttributeSelector(expression: "[[role$=ui]]", attributeName: "role", attributeValue: "ui", matching: Suffix)
✅ CanParseIdSequenceAlone
✅ CanParseMatching(expression: "=", matching: Substring)
✅ CanParseMatching(expression: "^=", matching: Prefix)
✅ CanParseMatching(expression: "=", matching: Equals)
✅ CanParseMatching(expression: "|=", matching: Dash)
✅ CanParseMatching(expression: "~=", matching: Includes)
✅ CanParseMatching(expression: "$=", matching: Suffix)
✅ CanParseSelector1
✅ CanParseSelector2
✅ CanParseSelectorWithEscapedChar
✅ CanParseTextSelector(expression: "[[ text()= ui ]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text() = ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()]]", attributeName: "text()", attributeValue: null, matching: null)
✅ CanParseTextSelector(expression: "[[text()
=ui]]", attributeName: "text()", attributeValue: "ui", matching: Substring)
✅ CanParseTextSelector(expression: "[[text()^=ui]]", attributeName: "text()", attributeValue: "ui", matching: Prefix)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()|=ui]]", attributeName: "text()", attributeValue: "ui", matching: Dash)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Includes)
✅ CanParseTextSelector(expression: "[[text()$=ui]]", attributeName: "text()", attributeValue: "ui", matching: Suffix)
✅ CanParseTypeAndClassSequence
✅ CanParseTypeSelector
✅ CanParseTypeSelectorWithNoNamespace
✅ CanParseTypeSelectorWithWidcardNamespace
✅ CanParseUniversalAndIdSequence
✅ CanParseUniversalSelector
✅ CanParseUniversalSelectorWithNoNamespace
✅ CanParseUniversalSelectorWithWidcardNamespace
✅ EvaluatePageHtml(expression: ":empty", expected: " ")
✅ EvaluatePageHtml(expression: ".container", expected: "Hello1234")
✅ EvaluatePageHtml(expression: ".item__hiden-content", expected: "Archivo")
✅ EvaluatePageHtml(expression: ".main", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "[[tags
=flow]]", expected: "File Edit")
✅ EvaluatePageHtml(expression: "[[tags~=selected]]", expected: "File")
✅ EvaluatePageHtml(expression: "#title", expected: "Hello")
✅ EvaluatePageHtml(expression: "body > div > span", expected: "1 2 4")
✅ EvaluatePageHtml(expression: "body > div:nth-of-type(3)", expected: "Standard")
✅ EvaluatePageHtml(expression: "body > span:nth-child(5)", expected: "5")
✅ EvaluatePageHtml(expression: "div > div", expected: "Hello")
✅ EvaluatePageHtml(expression: "div span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "div span:last-of-type", expected: "4")
✅ EvaluatePageHtml(expression: "div:first-child", expected: "Warning Hello")
✅ EvaluatePageHtml(expression: "div:has(div[[id]], span[[id=one]])", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "div:last-child", expected: "Footer")
✅ EvaluatePageHtml(expression: "div.menuitem", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role]],span", expected: "Warning 1 2 4 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]]", expected: "Warning Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]][[lang|=es]]", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role*=nu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]:not([[role=menuitem]])", expected: "Standard")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role=alert]]", expected: "Warning")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]:nth-of-type(2)", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role$=item]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]] + div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]]+div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[text()=Hello]] + span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "h1:only-child", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "input:checked", expected: " ")
✅ EvaluatePageHtml(expression: "option:checked", expected: "second")
✅ EvaluatePageHtml(expression: "option[[selected="selected"]]", expected: "second")
✅ EvaluatePageHtml(expression: "p:has(h1)", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "span + p", expected: "3")
✅ EvaluatePageHtml(expression: "span:not([[id]])", expected: "4 5")
✅ EvaluatePageHtml(expression: "span:not([[text()='4']]),div[[role]]", expected: "Warning 1 2 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "span", expected: "1 2 4 5")
✅ ExcludesScriptsByDefault
✅ ExcludesStylesByDefault
✅ ExcludesXmlNamespacesByDefault
✅ HtmlSettings
✅ IncludeScriptsExplicitSettings
✅ IncludeStylesExplicitSettings
✅ IncludeXmlNamespacesExplicitly
✅ ParseIdentifier(expression: "_foo-bar", identifier: "_foo-bar")
✅ ParseIdentifier(expression: "-foo_bar", identifier: "-foo_bar")
✅ ParseIdentifier(expression: "foo__bar", identifier: "foo__bar")
✅ ParseIdentifier(expression: "foo_bar", identifier: "foo_bar")
✅ ParseIdentifier(expression: "foo\+bar", identifier: "foo+bar")
✅ ParseSelector
✅ RemoveElementsFromReader
✅ RemoveNamespacesFromElement
✅ Render
✅ RenderExpression
✅ SelectEmptyDiv
✅ ToXPath(css: ".foo", xpath: ".//[[contains(concat(" ",normalize-space(@Class)"···)
✅ ToXPath(css: "[[data-tags|=flow]]", xpath: ".//
[[@data-tags="flow" or starts-with(@data-tags"···)
✅ ToXPath(css: "[[role*=nu]]", xpath: ".//*[[contains(@ROLE,"nu")]]")
✅ ToXPath(css: "foo > bar > baz", xpath: ".//foo/bar/baz")
✅ ToXPath(css: "foo > bar", xpath: ".//foo/bar")
✅ ToXPath(css: "foo ~ bar", xpath: ".//foo/following-sibling::bar")
✅ ToXPath(css: "foo", xpath: ".//foo")

from dotnet-retest v0.6.3 on .NET 8.0.8 with 💜

@devlooped-bot
Copy link
Member Author

111 passed 111 passed

🧪 Details on Ubuntu 22.04.4 LTS

✅ AttributeSelectorNormalizesQuotes(expression: "[[data*='hello world']]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data*="hello world"]]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data='hello world']]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data="hello world"]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data=hello world]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()
="hello world"]]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()="hello world"]]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()=hello world]]", xpath: "[[text()="hello world"]]")
✅ CanChangeToUpperCaseHtml
✅ CanParseAttributeSelector(expression: "[[ role= ui ]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role = ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role]]", attributeName: "role", attributeValue: null, matching: null)
✅ CanParseAttributeSelector(expression: "[[role*=ui]]", attributeName: "role", attributeValue: "ui", matching: Substring)
✅ CanParseAttributeSelector(expression: "[[role^=ui]]", attributeName: "role", attributeValue: "ui", matching: Prefix)
✅ CanParseAttributeSelector(expression: "[[role=ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role|=ui]]", attributeName: "role", attributeValue: "ui", matching: Dash)
✅ CanParseAttributeSelector(expression: "[[role~=ui]]", attributeName: "role", attributeValue: "ui", matching: Includes)
✅ CanParseAttributeSelector(expression: "[[role$=ui]]", attributeName: "role", attributeValue: "ui", matching: Suffix)
✅ CanParseIdSequenceAlone
✅ CanParseMatching(expression: "=", matching: Substring)
✅ CanParseMatching(expression: "^=", matching: Prefix)
✅ CanParseMatching(expression: "=", matching: Equals)
✅ CanParseMatching(expression: "|=", matching: Dash)
✅ CanParseMatching(expression: "~=", matching: Includes)
✅ CanParseMatching(expression: "$=", matching: Suffix)
✅ CanParseSelector1
✅ CanParseSelector2
✅ CanParseSelectorWithEscapedChar
✅ CanParseTextSelector(expression: "[[ text()= ui ]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text() = ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()]]", attributeName: "text()", attributeValue: null, matching: null)
✅ CanParseTextSelector(expression: "[[text()
=ui]]", attributeName: "text()", attributeValue: "ui", matching: Substring)
✅ CanParseTextSelector(expression: "[[text()^=ui]]", attributeName: "text()", attributeValue: "ui", matching: Prefix)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()|=ui]]", attributeName: "text()", attributeValue: "ui", matching: Dash)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Includes)
✅ CanParseTextSelector(expression: "[[text()$=ui]]", attributeName: "text()", attributeValue: "ui", matching: Suffix)
✅ CanParseTypeAndClassSequence
✅ CanParseTypeSelector
✅ CanParseTypeSelectorWithNoNamespace
✅ CanParseTypeSelectorWithWidcardNamespace
✅ CanParseUniversalAndIdSequence
✅ CanParseUniversalSelector
✅ CanParseUniversalSelectorWithNoNamespace
✅ CanParseUniversalSelectorWithWidcardNamespace
✅ EvaluatePageHtml(expression: ":empty", expected: " ")
✅ EvaluatePageHtml(expression: ".container", expected: "Hello1234")
✅ EvaluatePageHtml(expression: ".item__hiden-content", expected: "Archivo")
✅ EvaluatePageHtml(expression: ".main", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "[[tags
=flow]]", expected: "File Edit")
✅ EvaluatePageHtml(expression: "[[tags~=selected]]", expected: "File")
✅ EvaluatePageHtml(expression: "#title", expected: "Hello")
✅ EvaluatePageHtml(expression: "body > div > span", expected: "1 2 4")
✅ EvaluatePageHtml(expression: "body > div:nth-of-type(3)", expected: "Standard")
✅ EvaluatePageHtml(expression: "body > span:nth-child(5)", expected: "5")
✅ EvaluatePageHtml(expression: "div > div", expected: "Hello")
✅ EvaluatePageHtml(expression: "div span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "div span:last-of-type", expected: "4")
✅ EvaluatePageHtml(expression: "div:first-child", expected: "Warning Hello")
✅ EvaluatePageHtml(expression: "div:has(div[[id]], span[[id=one]])", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "div:last-child", expected: "Footer")
✅ EvaluatePageHtml(expression: "div.menuitem", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role]],span", expected: "Warning 1 2 4 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]]", expected: "Warning Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]][[lang|=es]]", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role*=nu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]:not([[role=menuitem]])", expected: "Standard")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role=alert]]", expected: "Warning")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]:nth-of-type(2)", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role$=item]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]] + div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]]+div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[text()=Hello]] + span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "h1:only-child", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "input:checked", expected: " ")
✅ EvaluatePageHtml(expression: "option:checked", expected: "second")
✅ EvaluatePageHtml(expression: "option[[selected="selected"]]", expected: "second")
✅ EvaluatePageHtml(expression: "p:has(h1)", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "span + p", expected: "3")
✅ EvaluatePageHtml(expression: "span:not([[id]])", expected: "4 5")
✅ EvaluatePageHtml(expression: "span:not([[text()='4']]),div[[role]]", expected: "Warning 1 2 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "span", expected: "1 2 4 5")
✅ ExcludesScriptsByDefault
✅ ExcludesStylesByDefault
✅ ExcludesXmlNamespacesByDefault
✅ HtmlSettings
✅ IncludeScriptsExplicitSettings
✅ IncludeStylesExplicitSettings
✅ IncludeXmlNamespacesExplicitly
✅ ParseIdentifier(expression: "_foo-bar", identifier: "_foo-bar")
✅ ParseIdentifier(expression: "-foo_bar", identifier: "-foo_bar")
✅ ParseIdentifier(expression: "foo__bar", identifier: "foo__bar")
✅ ParseIdentifier(expression: "foo_bar", identifier: "foo_bar")
✅ ParseIdentifier(expression: "foo\+bar", identifier: "foo+bar")
✅ ParseSelector
✅ RemoveElementsFromReader
✅ RemoveNamespacesFromElement
✅ Render
✅ RenderExpression
✅ SelectEmptyDiv
✅ ToXPath(css: ".foo", xpath: ".//[[contains(concat(" ",normalize-space(@Class)"···)
✅ ToXPath(css: "[[data-tags|=flow]]", xpath: ".//
[[@data-tags="flow" or starts-with(@data-tags"···)
✅ ToXPath(css: "[[role*=nu]]", xpath: ".//*[[contains(@ROLE,"nu")]]")
✅ ToXPath(css: "foo > bar > baz", xpath: ".//foo/bar/baz")
✅ ToXPath(css: "foo > bar", xpath: ".//foo/bar")
✅ ToXPath(css: "foo ~ bar", xpath: ".//foo/following-sibling::bar")
✅ ToXPath(css: "foo", xpath: ".//foo")

from dotnet-retest v0.6.1 on .NET 8.0.7 with 💜

@devlooped-bot
Copy link
Member Author

111 passed 111 passed

🧪 Details on Ubuntu 22.04.4 LTS

✅ AttributeSelectorNormalizesQuotes(expression: "[[data*='hello world']]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data*="hello world"]]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data='hello world']]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data="hello world"]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data=hello world]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()
="hello world"]]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()="hello world"]]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()=hello world]]", xpath: "[[text()="hello world"]]")
✅ CanChangeToUpperCaseHtml
✅ CanParseAttributeSelector(expression: "[[ role= ui ]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role = ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role]]", attributeName: "role", attributeValue: null, matching: null)
✅ CanParseAttributeSelector(expression: "[[role*=ui]]", attributeName: "role", attributeValue: "ui", matching: Substring)
✅ CanParseAttributeSelector(expression: "[[role^=ui]]", attributeName: "role", attributeValue: "ui", matching: Prefix)
✅ CanParseAttributeSelector(expression: "[[role=ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role|=ui]]", attributeName: "role", attributeValue: "ui", matching: Dash)
✅ CanParseAttributeSelector(expression: "[[role~=ui]]", attributeName: "role", attributeValue: "ui", matching: Includes)
✅ CanParseAttributeSelector(expression: "[[role$=ui]]", attributeName: "role", attributeValue: "ui", matching: Suffix)
✅ CanParseIdSequenceAlone
✅ CanParseMatching(expression: "=", matching: Substring)
✅ CanParseMatching(expression: "^=", matching: Prefix)
✅ CanParseMatching(expression: "=", matching: Equals)
✅ CanParseMatching(expression: "|=", matching: Dash)
✅ CanParseMatching(expression: "~=", matching: Includes)
✅ CanParseMatching(expression: "$=", matching: Suffix)
✅ CanParseSelector1
✅ CanParseSelector2
✅ CanParseSelectorWithEscapedChar
✅ CanParseTextSelector(expression: "[[ text()= ui ]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text() = ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()]]", attributeName: "text()", attributeValue: null, matching: null)
✅ CanParseTextSelector(expression: "[[text()
=ui]]", attributeName: "text()", attributeValue: "ui", matching: Substring)
✅ CanParseTextSelector(expression: "[[text()^=ui]]", attributeName: "text()", attributeValue: "ui", matching: Prefix)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()|=ui]]", attributeName: "text()", attributeValue: "ui", matching: Dash)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Includes)
✅ CanParseTextSelector(expression: "[[text()$=ui]]", attributeName: "text()", attributeValue: "ui", matching: Suffix)
✅ CanParseTypeAndClassSequence
✅ CanParseTypeSelector
✅ CanParseTypeSelectorWithNoNamespace
✅ CanParseTypeSelectorWithWidcardNamespace
✅ CanParseUniversalAndIdSequence
✅ CanParseUniversalSelector
✅ CanParseUniversalSelectorWithNoNamespace
✅ CanParseUniversalSelectorWithWidcardNamespace
✅ EvaluatePageHtml(expression: ":empty", expected: " ")
✅ EvaluatePageHtml(expression: ".container", expected: "Hello1234")
✅ EvaluatePageHtml(expression: ".item__hiden-content", expected: "Archivo")
✅ EvaluatePageHtml(expression: ".main", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "[[tags
=flow]]", expected: "File Edit")
✅ EvaluatePageHtml(expression: "[[tags~=selected]]", expected: "File")
✅ EvaluatePageHtml(expression: "#title", expected: "Hello")
✅ EvaluatePageHtml(expression: "body > div > span", expected: "1 2 4")
✅ EvaluatePageHtml(expression: "body > div:nth-of-type(3)", expected: "Standard")
✅ EvaluatePageHtml(expression: "body > span:nth-child(5)", expected: "5")
✅ EvaluatePageHtml(expression: "div > div", expected: "Hello")
✅ EvaluatePageHtml(expression: "div span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "div span:last-of-type", expected: "4")
✅ EvaluatePageHtml(expression: "div:first-child", expected: "Warning Hello")
✅ EvaluatePageHtml(expression: "div:has(div[[id]], span[[id=one]])", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "div:last-child", expected: "Footer")
✅ EvaluatePageHtml(expression: "div.menuitem", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role]],span", expected: "Warning 1 2 4 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]]", expected: "Warning Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]][[lang|=es]]", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role*=nu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]:not([[role=menuitem]])", expected: "Standard")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role=alert]]", expected: "Warning")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]:nth-of-type(2)", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role$=item]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]] + div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]]+div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[text()=Hello]] + span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "h1:only-child", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "input:checked", expected: " ")
✅ EvaluatePageHtml(expression: "option:checked", expected: "second")
✅ EvaluatePageHtml(expression: "option[[selected="selected"]]", expected: "second")
✅ EvaluatePageHtml(expression: "p:has(h1)", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "span + p", expected: "3")
✅ EvaluatePageHtml(expression: "span:not([[id]])", expected: "4 5")
✅ EvaluatePageHtml(expression: "span:not([[text()='4']]),div[[role]]", expected: "Warning 1 2 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "span", expected: "1 2 4 5")
✅ ExcludesScriptsByDefault
✅ ExcludesStylesByDefault
✅ ExcludesXmlNamespacesByDefault
✅ HtmlSettings
✅ IncludeScriptsExplicitSettings
✅ IncludeStylesExplicitSettings
✅ IncludeXmlNamespacesExplicitly
✅ ParseIdentifier(expression: "_foo-bar", identifier: "_foo-bar")
✅ ParseIdentifier(expression: "-foo_bar", identifier: "-foo_bar")
✅ ParseIdentifier(expression: "foo__bar", identifier: "foo__bar")
✅ ParseIdentifier(expression: "foo_bar", identifier: "foo_bar")
✅ ParseIdentifier(expression: "foo\+bar", identifier: "foo+bar")
✅ ParseSelector
✅ RemoveElementsFromReader
✅ RemoveNamespacesFromElement
✅ Render
✅ RenderExpression
✅ SelectEmptyDiv
✅ ToXPath(css: ".foo", xpath: ".//[[contains(concat(" ",normalize-space(@Class)"···)
✅ ToXPath(css: "[[data-tags|=flow]]", xpath: ".//
[[@data-tags="flow" or starts-with(@data-tags"···)
✅ ToXPath(css: "[[role*=nu]]", xpath: ".//*[[contains(@ROLE,"nu")]]")
✅ ToXPath(css: "foo > bar > baz", xpath: ".//foo/bar/baz")
✅ ToXPath(css: "foo > bar", xpath: ".//foo/bar")
✅ ToXPath(css: "foo ~ bar", xpath: ".//foo/following-sibling::bar")
✅ ToXPath(css: "foo", xpath: ".//foo")

from dotnet-retest v0.6.2 on .NET 8.0.8 with 💜

@devlooped-bot
Copy link
Member Author

111 passed 111 passed

🧪 Details on Ubuntu 22.04.4 LTS

✅ AttributeSelectorNormalizesQuotes(expression: "[[data*='hello world']]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data*="hello world"]]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data='hello world']]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data="hello world"]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data=hello world]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()
="hello world"]]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()="hello world"]]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()=hello world]]", xpath: "[[text()="hello world"]]")
✅ CanChangeToUpperCaseHtml
✅ CanParseAttributeSelector(expression: "[[ role= ui ]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role = ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role]]", attributeName: "role", attributeValue: null, matching: null)
✅ CanParseAttributeSelector(expression: "[[role*=ui]]", attributeName: "role", attributeValue: "ui", matching: Substring)
✅ CanParseAttributeSelector(expression: "[[role^=ui]]", attributeName: "role", attributeValue: "ui", matching: Prefix)
✅ CanParseAttributeSelector(expression: "[[role=ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role|=ui]]", attributeName: "role", attributeValue: "ui", matching: Dash)
✅ CanParseAttributeSelector(expression: "[[role~=ui]]", attributeName: "role", attributeValue: "ui", matching: Includes)
✅ CanParseAttributeSelector(expression: "[[role$=ui]]", attributeName: "role", attributeValue: "ui", matching: Suffix)
✅ CanParseIdSequenceAlone
✅ CanParseMatching(expression: "=", matching: Substring)
✅ CanParseMatching(expression: "^=", matching: Prefix)
✅ CanParseMatching(expression: "=", matching: Equals)
✅ CanParseMatching(expression: "|=", matching: Dash)
✅ CanParseMatching(expression: "~=", matching: Includes)
✅ CanParseMatching(expression: "$=", matching: Suffix)
✅ CanParseSelector1
✅ CanParseSelector2
✅ CanParseSelectorWithEscapedChar
✅ CanParseTextSelector(expression: "[[ text()= ui ]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text() = ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()]]", attributeName: "text()", attributeValue: null, matching: null)
✅ CanParseTextSelector(expression: "[[text()
=ui]]", attributeName: "text()", attributeValue: "ui", matching: Substring)
✅ CanParseTextSelector(expression: "[[text()^=ui]]", attributeName: "text()", attributeValue: "ui", matching: Prefix)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()|=ui]]", attributeName: "text()", attributeValue: "ui", matching: Dash)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Includes)
✅ CanParseTextSelector(expression: "[[text()$=ui]]", attributeName: "text()", attributeValue: "ui", matching: Suffix)
✅ CanParseTypeAndClassSequence
✅ CanParseTypeSelector
✅ CanParseTypeSelectorWithNoNamespace
✅ CanParseTypeSelectorWithWidcardNamespace
✅ CanParseUniversalAndIdSequence
✅ CanParseUniversalSelector
✅ CanParseUniversalSelectorWithNoNamespace
✅ CanParseUniversalSelectorWithWidcardNamespace
✅ EvaluatePageHtml(expression: ":empty", expected: " ")
✅ EvaluatePageHtml(expression: ".container", expected: "Hello1234")
✅ EvaluatePageHtml(expression: ".item__hiden-content", expected: "Archivo")
✅ EvaluatePageHtml(expression: ".main", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "[[tags
=flow]]", expected: "File Edit")
✅ EvaluatePageHtml(expression: "[[tags~=selected]]", expected: "File")
✅ EvaluatePageHtml(expression: "#title", expected: "Hello")
✅ EvaluatePageHtml(expression: "body > div > span", expected: "1 2 4")
✅ EvaluatePageHtml(expression: "body > div:nth-of-type(3)", expected: "Standard")
✅ EvaluatePageHtml(expression: "body > span:nth-child(5)", expected: "5")
✅ EvaluatePageHtml(expression: "div > div", expected: "Hello")
✅ EvaluatePageHtml(expression: "div span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "div span:last-of-type", expected: "4")
✅ EvaluatePageHtml(expression: "div:first-child", expected: "Warning Hello")
✅ EvaluatePageHtml(expression: "div:has(div[[id]], span[[id=one]])", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "div:last-child", expected: "Footer")
✅ EvaluatePageHtml(expression: "div.menuitem", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role]],span", expected: "Warning 1 2 4 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]]", expected: "Warning Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]][[lang|=es]]", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role*=nu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]:not([[role=menuitem]])", expected: "Standard")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role=alert]]", expected: "Warning")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]:nth-of-type(2)", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role$=item]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]] + div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]]+div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[text()=Hello]] + span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "h1:only-child", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "input:checked", expected: " ")
✅ EvaluatePageHtml(expression: "option:checked", expected: "second")
✅ EvaluatePageHtml(expression: "option[[selected="selected"]]", expected: "second")
✅ EvaluatePageHtml(expression: "p:has(h1)", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "span + p", expected: "3")
✅ EvaluatePageHtml(expression: "span:not([[id]])", expected: "4 5")
✅ EvaluatePageHtml(expression: "span:not([[text()='4']]),div[[role]]", expected: "Warning 1 2 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "span", expected: "1 2 4 5")
✅ ExcludesScriptsByDefault
✅ ExcludesStylesByDefault
✅ ExcludesXmlNamespacesByDefault
✅ HtmlSettings
✅ IncludeScriptsExplicitSettings
✅ IncludeStylesExplicitSettings
✅ IncludeXmlNamespacesExplicitly
✅ ParseIdentifier(expression: "_foo-bar", identifier: "_foo-bar")
✅ ParseIdentifier(expression: "-foo_bar", identifier: "-foo_bar")
✅ ParseIdentifier(expression: "foo__bar", identifier: "foo__bar")
✅ ParseIdentifier(expression: "foo_bar", identifier: "foo_bar")
✅ ParseIdentifier(expression: "foo\+bar", identifier: "foo+bar")
✅ ParseSelector
✅ RemoveElementsFromReader
✅ RemoveNamespacesFromElement
✅ Render
✅ RenderExpression
✅ SelectEmptyDiv
✅ ToXPath(css: ".foo", xpath: ".//[[contains(concat(" ",normalize-space(@Class)"···)
✅ ToXPath(css: "[[data-tags|=flow]]", xpath: ".//
[[@data-tags="flow" or starts-with(@data-tags"···)
✅ ToXPath(css: "[[role*=nu]]", xpath: ".//*[[contains(@ROLE,"nu")]]")
✅ ToXPath(css: "foo > bar > baz", xpath: ".//foo/bar/baz")
✅ ToXPath(css: "foo > bar", xpath: ".//foo/bar")
✅ ToXPath(css: "foo ~ bar", xpath: ".//foo/following-sibling::bar")
✅ ToXPath(css: "foo", xpath: ".//foo")

from dotnet-retest v0.6.2 on .NET 8.0.8 with 💜

@devlooped-bot
Copy link
Member Author

111 passed 111 passed

🧪 Details on Ubuntu 22.04.4 LTS

✅ AttributeSelectorNormalizesQuotes(expression: "[[data*='hello world']]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data*="hello world"]]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data='hello world']]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data="hello world"]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data=hello world]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()
="hello world"]]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()="hello world"]]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()=hello world]]", xpath: "[[text()="hello world"]]")
✅ CanChangeToUpperCaseHtml
✅ CanParseAttributeSelector(expression: "[[ role= ui ]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role = ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role]]", attributeName: "role", attributeValue: null, matching: null)
✅ CanParseAttributeSelector(expression: "[[role*=ui]]", attributeName: "role", attributeValue: "ui", matching: Substring)
✅ CanParseAttributeSelector(expression: "[[role^=ui]]", attributeName: "role", attributeValue: "ui", matching: Prefix)
✅ CanParseAttributeSelector(expression: "[[role=ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role|=ui]]", attributeName: "role", attributeValue: "ui", matching: Dash)
✅ CanParseAttributeSelector(expression: "[[role~=ui]]", attributeName: "role", attributeValue: "ui", matching: Includes)
✅ CanParseAttributeSelector(expression: "[[role$=ui]]", attributeName: "role", attributeValue: "ui", matching: Suffix)
✅ CanParseIdSequenceAlone
✅ CanParseMatching(expression: "=", matching: Substring)
✅ CanParseMatching(expression: "^=", matching: Prefix)
✅ CanParseMatching(expression: "=", matching: Equals)
✅ CanParseMatching(expression: "|=", matching: Dash)
✅ CanParseMatching(expression: "~=", matching: Includes)
✅ CanParseMatching(expression: "$=", matching: Suffix)
✅ CanParseSelector1
✅ CanParseSelector2
✅ CanParseSelectorWithEscapedChar
✅ CanParseTextSelector(expression: "[[ text()= ui ]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text() = ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()]]", attributeName: "text()", attributeValue: null, matching: null)
✅ CanParseTextSelector(expression: "[[text()
=ui]]", attributeName: "text()", attributeValue: "ui", matching: Substring)
✅ CanParseTextSelector(expression: "[[text()^=ui]]", attributeName: "text()", attributeValue: "ui", matching: Prefix)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()|=ui]]", attributeName: "text()", attributeValue: "ui", matching: Dash)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Includes)
✅ CanParseTextSelector(expression: "[[text()$=ui]]", attributeName: "text()", attributeValue: "ui", matching: Suffix)
✅ CanParseTypeAndClassSequence
✅ CanParseTypeSelector
✅ CanParseTypeSelectorWithNoNamespace
✅ CanParseTypeSelectorWithWidcardNamespace
✅ CanParseUniversalAndIdSequence
✅ CanParseUniversalSelector
✅ CanParseUniversalSelectorWithNoNamespace
✅ CanParseUniversalSelectorWithWidcardNamespace
✅ EvaluatePageHtml(expression: ":empty", expected: " ")
✅ EvaluatePageHtml(expression: ".container", expected: "Hello1234")
✅ EvaluatePageHtml(expression: ".item__hiden-content", expected: "Archivo")
✅ EvaluatePageHtml(expression: ".main", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "[[tags
=flow]]", expected: "File Edit")
✅ EvaluatePageHtml(expression: "[[tags~=selected]]", expected: "File")
✅ EvaluatePageHtml(expression: "#title", expected: "Hello")
✅ EvaluatePageHtml(expression: "body > div > span", expected: "1 2 4")
✅ EvaluatePageHtml(expression: "body > div:nth-of-type(3)", expected: "Standard")
✅ EvaluatePageHtml(expression: "body > span:nth-child(5)", expected: "5")
✅ EvaluatePageHtml(expression: "div > div", expected: "Hello")
✅ EvaluatePageHtml(expression: "div span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "div span:last-of-type", expected: "4")
✅ EvaluatePageHtml(expression: "div:first-child", expected: "Warning Hello")
✅ EvaluatePageHtml(expression: "div:has(div[[id]], span[[id=one]])", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "div:last-child", expected: "Footer")
✅ EvaluatePageHtml(expression: "div.menuitem", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role]],span", expected: "Warning 1 2 4 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]]", expected: "Warning Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]][[lang|=es]]", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role*=nu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]:not([[role=menuitem]])", expected: "Standard")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role=alert]]", expected: "Warning")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]:nth-of-type(2)", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role$=item]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]] + div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]]+div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[text()=Hello]] + span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "h1:only-child", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "input:checked", expected: " ")
✅ EvaluatePageHtml(expression: "option:checked", expected: "second")
✅ EvaluatePageHtml(expression: "option[[selected="selected"]]", expected: "second")
✅ EvaluatePageHtml(expression: "p:has(h1)", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "span + p", expected: "3")
✅ EvaluatePageHtml(expression: "span:not([[id]])", expected: "4 5")
✅ EvaluatePageHtml(expression: "span:not([[text()='4']]),div[[role]]", expected: "Warning 1 2 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "span", expected: "1 2 4 5")
✅ ExcludesScriptsByDefault
✅ ExcludesStylesByDefault
✅ ExcludesXmlNamespacesByDefault
✅ HtmlSettings
✅ IncludeScriptsExplicitSettings
✅ IncludeStylesExplicitSettings
✅ IncludeXmlNamespacesExplicitly
✅ ParseIdentifier(expression: "_foo-bar", identifier: "_foo-bar")
✅ ParseIdentifier(expression: "-foo_bar", identifier: "-foo_bar")
✅ ParseIdentifier(expression: "foo__bar", identifier: "foo__bar")
✅ ParseIdentifier(expression: "foo_bar", identifier: "foo_bar")
✅ ParseIdentifier(expression: "foo\+bar", identifier: "foo+bar")
✅ ParseSelector
✅ RemoveElementsFromReader
✅ RemoveNamespacesFromElement
✅ Render
✅ RenderExpression
✅ SelectEmptyDiv
✅ ToXPath(css: ".foo", xpath: ".//[[contains(concat(" ",normalize-space(@Class)"···)
✅ ToXPath(css: "[[data-tags|=flow]]", xpath: ".//
[[@data-tags="flow" or starts-with(@data-tags"···)
✅ ToXPath(css: "[[role*=nu]]", xpath: ".//*[[contains(@ROLE,"nu")]]")
✅ ToXPath(css: "foo > bar > baz", xpath: ".//foo/bar/baz")
✅ ToXPath(css: "foo > bar", xpath: ".//foo/bar")
✅ ToXPath(css: "foo ~ bar", xpath: ".//foo/following-sibling::bar")
✅ ToXPath(css: "foo", xpath: ".//foo")

from dotnet-retest v0.6.2 on .NET 8.0.8 with 💜

@devlooped-bot
Copy link
Member Author

111 passed 111 passed

🧪 Details on Ubuntu 22.04.4 LTS

✅ AttributeSelectorNormalizesQuotes(expression: "[[data*='hello world']]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data*="hello world"]]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data='hello world']]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data="hello world"]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data=hello world]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()
="hello world"]]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()="hello world"]]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()=hello world]]", xpath: "[[text()="hello world"]]")
✅ CanChangeToUpperCaseHtml
✅ CanParseAttributeSelector(expression: "[[ role= ui ]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role = ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role]]", attributeName: "role", attributeValue: null, matching: null)
✅ CanParseAttributeSelector(expression: "[[role*=ui]]", attributeName: "role", attributeValue: "ui", matching: Substring)
✅ CanParseAttributeSelector(expression: "[[role^=ui]]", attributeName: "role", attributeValue: "ui", matching: Prefix)
✅ CanParseAttributeSelector(expression: "[[role=ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role|=ui]]", attributeName: "role", attributeValue: "ui", matching: Dash)
✅ CanParseAttributeSelector(expression: "[[role~=ui]]", attributeName: "role", attributeValue: "ui", matching: Includes)
✅ CanParseAttributeSelector(expression: "[[role$=ui]]", attributeName: "role", attributeValue: "ui", matching: Suffix)
✅ CanParseIdSequenceAlone
✅ CanParseMatching(expression: "=", matching: Substring)
✅ CanParseMatching(expression: "^=", matching: Prefix)
✅ CanParseMatching(expression: "=", matching: Equals)
✅ CanParseMatching(expression: "|=", matching: Dash)
✅ CanParseMatching(expression: "~=", matching: Includes)
✅ CanParseMatching(expression: "$=", matching: Suffix)
✅ CanParseSelector1
✅ CanParseSelector2
✅ CanParseSelectorWithEscapedChar
✅ CanParseTextSelector(expression: "[[ text()= ui ]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text() = ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()]]", attributeName: "text()", attributeValue: null, matching: null)
✅ CanParseTextSelector(expression: "[[text()
=ui]]", attributeName: "text()", attributeValue: "ui", matching: Substring)
✅ CanParseTextSelector(expression: "[[text()^=ui]]", attributeName: "text()", attributeValue: "ui", matching: Prefix)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()|=ui]]", attributeName: "text()", attributeValue: "ui", matching: Dash)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Includes)
✅ CanParseTextSelector(expression: "[[text()$=ui]]", attributeName: "text()", attributeValue: "ui", matching: Suffix)
✅ CanParseTypeAndClassSequence
✅ CanParseTypeSelector
✅ CanParseTypeSelectorWithNoNamespace
✅ CanParseTypeSelectorWithWidcardNamespace
✅ CanParseUniversalAndIdSequence
✅ CanParseUniversalSelector
✅ CanParseUniversalSelectorWithNoNamespace
✅ CanParseUniversalSelectorWithWidcardNamespace
✅ EvaluatePageHtml(expression: ":empty", expected: " ")
✅ EvaluatePageHtml(expression: ".container", expected: "Hello1234")
✅ EvaluatePageHtml(expression: ".item__hiden-content", expected: "Archivo")
✅ EvaluatePageHtml(expression: ".main", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "[[tags
=flow]]", expected: "File Edit")
✅ EvaluatePageHtml(expression: "[[tags~=selected]]", expected: "File")
✅ EvaluatePageHtml(expression: "#title", expected: "Hello")
✅ EvaluatePageHtml(expression: "body > div > span", expected: "1 2 4")
✅ EvaluatePageHtml(expression: "body > div:nth-of-type(3)", expected: "Standard")
✅ EvaluatePageHtml(expression: "body > span:nth-child(5)", expected: "5")
✅ EvaluatePageHtml(expression: "div > div", expected: "Hello")
✅ EvaluatePageHtml(expression: "div span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "div span:last-of-type", expected: "4")
✅ EvaluatePageHtml(expression: "div:first-child", expected: "Warning Hello")
✅ EvaluatePageHtml(expression: "div:has(div[[id]], span[[id=one]])", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "div:last-child", expected: "Footer")
✅ EvaluatePageHtml(expression: "div.menuitem", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role]],span", expected: "Warning 1 2 4 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]]", expected: "Warning Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]][[lang|=es]]", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role*=nu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]:not([[role=menuitem]])", expected: "Standard")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role=alert]]", expected: "Warning")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]:nth-of-type(2)", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role$=item]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]] + div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]]+div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[text()=Hello]] + span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "h1:only-child", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "input:checked", expected: " ")
✅ EvaluatePageHtml(expression: "option:checked", expected: "second")
✅ EvaluatePageHtml(expression: "option[[selected="selected"]]", expected: "second")
✅ EvaluatePageHtml(expression: "p:has(h1)", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "span + p", expected: "3")
✅ EvaluatePageHtml(expression: "span:not([[id]])", expected: "4 5")
✅ EvaluatePageHtml(expression: "span:not([[text()='4']]),div[[role]]", expected: "Warning 1 2 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "span", expected: "1 2 4 5")
✅ ExcludesScriptsByDefault
✅ ExcludesStylesByDefault
✅ ExcludesXmlNamespacesByDefault
✅ HtmlSettings
✅ IncludeScriptsExplicitSettings
✅ IncludeStylesExplicitSettings
✅ IncludeXmlNamespacesExplicitly
✅ ParseIdentifier(expression: "_foo-bar", identifier: "_foo-bar")
✅ ParseIdentifier(expression: "-foo_bar", identifier: "-foo_bar")
✅ ParseIdentifier(expression: "foo__bar", identifier: "foo__bar")
✅ ParseIdentifier(expression: "foo_bar", identifier: "foo_bar")
✅ ParseIdentifier(expression: "foo\+bar", identifier: "foo+bar")
✅ ParseSelector
✅ RemoveElementsFromReader
✅ RemoveNamespacesFromElement
✅ Render
✅ RenderExpression
✅ SelectEmptyDiv
✅ ToXPath(css: ".foo", xpath: ".//[[contains(concat(" ",normalize-space(@Class)"···)
✅ ToXPath(css: "[[data-tags|=flow]]", xpath: ".//
[[@data-tags="flow" or starts-with(@data-tags"···)
✅ ToXPath(css: "[[role*=nu]]", xpath: ".//*[[contains(@ROLE,"nu")]]")
✅ ToXPath(css: "foo > bar > baz", xpath: ".//foo/bar/baz")
✅ ToXPath(css: "foo > bar", xpath: ".//foo/bar")
✅ ToXPath(css: "foo ~ bar", xpath: ".//foo/following-sibling::bar")
✅ ToXPath(css: "foo", xpath: ".//foo")

from dotnet-retest v0.6.2 on .NET 8.0.8 with 💜

@devlooped-bot devlooped-bot force-pushed the dotnet-file-sync branch 2 times, most recently from b5bc370 to d7c7fde Compare September 3, 2024 02:08
@devlooped-bot
Copy link
Member Author

111 passed 111 passed

🧪 Details on Ubuntu 22.04.4 LTS

✅ AttributeSelectorNormalizesQuotes(expression: "[[data*='hello world']]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data*="hello world"]]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data='hello world']]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data="hello world"]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data=hello world]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()
="hello world"]]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()="hello world"]]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()=hello world]]", xpath: "[[text()="hello world"]]")
✅ CanChangeToUpperCaseHtml
✅ CanParseAttributeSelector(expression: "[[ role= ui ]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role = ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role]]", attributeName: "role", attributeValue: null, matching: null)
✅ CanParseAttributeSelector(expression: "[[role*=ui]]", attributeName: "role", attributeValue: "ui", matching: Substring)
✅ CanParseAttributeSelector(expression: "[[role^=ui]]", attributeName: "role", attributeValue: "ui", matching: Prefix)
✅ CanParseAttributeSelector(expression: "[[role=ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role|=ui]]", attributeName: "role", attributeValue: "ui", matching: Dash)
✅ CanParseAttributeSelector(expression: "[[role~=ui]]", attributeName: "role", attributeValue: "ui", matching: Includes)
✅ CanParseAttributeSelector(expression: "[[role$=ui]]", attributeName: "role", attributeValue: "ui", matching: Suffix)
✅ CanParseIdSequenceAlone
✅ CanParseMatching(expression: "=", matching: Substring)
✅ CanParseMatching(expression: "^=", matching: Prefix)
✅ CanParseMatching(expression: "=", matching: Equals)
✅ CanParseMatching(expression: "|=", matching: Dash)
✅ CanParseMatching(expression: "~=", matching: Includes)
✅ CanParseMatching(expression: "$=", matching: Suffix)
✅ CanParseSelector1
✅ CanParseSelector2
✅ CanParseSelectorWithEscapedChar
✅ CanParseTextSelector(expression: "[[ text()= ui ]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text() = ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()]]", attributeName: "text()", attributeValue: null, matching: null)
✅ CanParseTextSelector(expression: "[[text()
=ui]]", attributeName: "text()", attributeValue: "ui", matching: Substring)
✅ CanParseTextSelector(expression: "[[text()^=ui]]", attributeName: "text()", attributeValue: "ui", matching: Prefix)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()|=ui]]", attributeName: "text()", attributeValue: "ui", matching: Dash)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Includes)
✅ CanParseTextSelector(expression: "[[text()$=ui]]", attributeName: "text()", attributeValue: "ui", matching: Suffix)
✅ CanParseTypeAndClassSequence
✅ CanParseTypeSelector
✅ CanParseTypeSelectorWithNoNamespace
✅ CanParseTypeSelectorWithWidcardNamespace
✅ CanParseUniversalAndIdSequence
✅ CanParseUniversalSelector
✅ CanParseUniversalSelectorWithNoNamespace
✅ CanParseUniversalSelectorWithWidcardNamespace
✅ EvaluatePageHtml(expression: ":empty", expected: " ")
✅ EvaluatePageHtml(expression: ".container", expected: "Hello1234")
✅ EvaluatePageHtml(expression: ".item__hiden-content", expected: "Archivo")
✅ EvaluatePageHtml(expression: ".main", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "[[tags
=flow]]", expected: "File Edit")
✅ EvaluatePageHtml(expression: "[[tags~=selected]]", expected: "File")
✅ EvaluatePageHtml(expression: "#title", expected: "Hello")
✅ EvaluatePageHtml(expression: "body > div > span", expected: "1 2 4")
✅ EvaluatePageHtml(expression: "body > div:nth-of-type(3)", expected: "Standard")
✅ EvaluatePageHtml(expression: "body > span:nth-child(5)", expected: "5")
✅ EvaluatePageHtml(expression: "div > div", expected: "Hello")
✅ EvaluatePageHtml(expression: "div span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "div span:last-of-type", expected: "4")
✅ EvaluatePageHtml(expression: "div:first-child", expected: "Warning Hello")
✅ EvaluatePageHtml(expression: "div:has(div[[id]], span[[id=one]])", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "div:last-child", expected: "Footer")
✅ EvaluatePageHtml(expression: "div.menuitem", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role]],span", expected: "Warning 1 2 4 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]]", expected: "Warning Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]][[lang|=es]]", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role*=nu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]:not([[role=menuitem]])", expected: "Standard")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role=alert]]", expected: "Warning")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]:nth-of-type(2)", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role$=item]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]] + div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]]+div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[text()=Hello]] + span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "h1:only-child", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "input:checked", expected: " ")
✅ EvaluatePageHtml(expression: "option:checked", expected: "second")
✅ EvaluatePageHtml(expression: "option[[selected="selected"]]", expected: "second")
✅ EvaluatePageHtml(expression: "p:has(h1)", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "span + p", expected: "3")
✅ EvaluatePageHtml(expression: "span:not([[id]])", expected: "4 5")
✅ EvaluatePageHtml(expression: "span:not([[text()='4']]),div[[role]]", expected: "Warning 1 2 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "span", expected: "1 2 4 5")
✅ ExcludesScriptsByDefault
✅ ExcludesStylesByDefault
✅ ExcludesXmlNamespacesByDefault
✅ HtmlSettings
✅ IncludeScriptsExplicitSettings
✅ IncludeStylesExplicitSettings
✅ IncludeXmlNamespacesExplicitly
✅ ParseIdentifier(expression: "_foo-bar", identifier: "_foo-bar")
✅ ParseIdentifier(expression: "-foo_bar", identifier: "-foo_bar")
✅ ParseIdentifier(expression: "foo__bar", identifier: "foo__bar")
✅ ParseIdentifier(expression: "foo_bar", identifier: "foo_bar")
✅ ParseIdentifier(expression: "foo\+bar", identifier: "foo+bar")
✅ ParseSelector
✅ RemoveElementsFromReader
✅ RemoveNamespacesFromElement
✅ Render
✅ RenderExpression
✅ SelectEmptyDiv
✅ ToXPath(css: ".foo", xpath: ".//[[contains(concat(" ",normalize-space(@Class)"···)
✅ ToXPath(css: "[[data-tags|=flow]]", xpath: ".//
[[@data-tags="flow" or starts-with(@data-tags"···)
✅ ToXPath(css: "[[role*=nu]]", xpath: ".//*[[contains(@ROLE,"nu")]]")
✅ ToXPath(css: "foo > bar > baz", xpath: ".//foo/bar/baz")
✅ ToXPath(css: "foo > bar", xpath: ".//foo/bar")
✅ ToXPath(css: "foo ~ bar", xpath: ".//foo/following-sibling::bar")
✅ ToXPath(css: "foo", xpath: ".//foo")

from dotnet-retest v0.6.3 on .NET 8.0.8 with 💜

@devlooped-bot
Copy link
Member Author

111 passed 111 passed

🧪 Details on Ubuntu 22.04.5 LTS

✅ AttributeSelectorNormalizesQuotes(expression: "[[data*='hello world']]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data*="hello world"]]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data='hello world']]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data="hello world"]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data=hello world]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()
="hello world"]]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()="hello world"]]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()=hello world]]", xpath: "[[text()="hello world"]]")
✅ CanChangeToUpperCaseHtml
✅ CanParseAttributeSelector(expression: "[[ role= ui ]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role = ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role]]", attributeName: "role", attributeValue: null, matching: null)
✅ CanParseAttributeSelector(expression: "[[role*=ui]]", attributeName: "role", attributeValue: "ui", matching: Substring)
✅ CanParseAttributeSelector(expression: "[[role^=ui]]", attributeName: "role", attributeValue: "ui", matching: Prefix)
✅ CanParseAttributeSelector(expression: "[[role=ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role|=ui]]", attributeName: "role", attributeValue: "ui", matching: Dash)
✅ CanParseAttributeSelector(expression: "[[role~=ui]]", attributeName: "role", attributeValue: "ui", matching: Includes)
✅ CanParseAttributeSelector(expression: "[[role$=ui]]", attributeName: "role", attributeValue: "ui", matching: Suffix)
✅ CanParseIdSequenceAlone
✅ CanParseMatching(expression: "=", matching: Substring)
✅ CanParseMatching(expression: "^=", matching: Prefix)
✅ CanParseMatching(expression: "=", matching: Equals)
✅ CanParseMatching(expression: "|=", matching: Dash)
✅ CanParseMatching(expression: "~=", matching: Includes)
✅ CanParseMatching(expression: "$=", matching: Suffix)
✅ CanParseSelector1
✅ CanParseSelector2
✅ CanParseSelectorWithEscapedChar
✅ CanParseTextSelector(expression: "[[ text()= ui ]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text() = ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()]]", attributeName: "text()", attributeValue: null, matching: null)
✅ CanParseTextSelector(expression: "[[text()
=ui]]", attributeName: "text()", attributeValue: "ui", matching: Substring)
✅ CanParseTextSelector(expression: "[[text()^=ui]]", attributeName: "text()", attributeValue: "ui", matching: Prefix)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()|=ui]]", attributeName: "text()", attributeValue: "ui", matching: Dash)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Includes)
✅ CanParseTextSelector(expression: "[[text()$=ui]]", attributeName: "text()", attributeValue: "ui", matching: Suffix)
✅ CanParseTypeAndClassSequence
✅ CanParseTypeSelector
✅ CanParseTypeSelectorWithNoNamespace
✅ CanParseTypeSelectorWithWidcardNamespace
✅ CanParseUniversalAndIdSequence
✅ CanParseUniversalSelector
✅ CanParseUniversalSelectorWithNoNamespace
✅ CanParseUniversalSelectorWithWidcardNamespace
✅ EvaluatePageHtml(expression: ":empty", expected: " ")
✅ EvaluatePageHtml(expression: ".container", expected: "Hello1234")
✅ EvaluatePageHtml(expression: ".item__hiden-content", expected: "Archivo")
✅ EvaluatePageHtml(expression: ".main", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "[[tags
=flow]]", expected: "File Edit")
✅ EvaluatePageHtml(expression: "[[tags~=selected]]", expected: "File")
✅ EvaluatePageHtml(expression: "#title", expected: "Hello")
✅ EvaluatePageHtml(expression: "body > div > span", expected: "1 2 4")
✅ EvaluatePageHtml(expression: "body > div:nth-of-type(3)", expected: "Standard")
✅ EvaluatePageHtml(expression: "body > span:nth-child(5)", expected: "5")
✅ EvaluatePageHtml(expression: "div > div", expected: "Hello")
✅ EvaluatePageHtml(expression: "div span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "div span:last-of-type", expected: "4")
✅ EvaluatePageHtml(expression: "div:first-child", expected: "Warning Hello")
✅ EvaluatePageHtml(expression: "div:has(div[[id]], span[[id=one]])", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "div:last-child", expected: "Footer")
✅ EvaluatePageHtml(expression: "div.menuitem", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role]],span", expected: "Warning 1 2 4 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]]", expected: "Warning Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]][[lang|=es]]", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role*=nu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]:not([[role=menuitem]])", expected: "Standard")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role=alert]]", expected: "Warning")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]:nth-of-type(2)", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role$=item]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]] + div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]]+div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[text()=Hello]] + span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "h1:only-child", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "input:checked", expected: " ")
✅ EvaluatePageHtml(expression: "option:checked", expected: "second")
✅ EvaluatePageHtml(expression: "option[[selected="selected"]]", expected: "second")
✅ EvaluatePageHtml(expression: "p:has(h1)", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "span + p", expected: "3")
✅ EvaluatePageHtml(expression: "span:not([[id]])", expected: "4 5")
✅ EvaluatePageHtml(expression: "span:not([[text()='4']]),div[[role]]", expected: "Warning 1 2 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "span", expected: "1 2 4 5")
✅ ExcludesScriptsByDefault
✅ ExcludesStylesByDefault
✅ ExcludesXmlNamespacesByDefault
✅ HtmlSettings
✅ IncludeScriptsExplicitSettings
✅ IncludeStylesExplicitSettings
✅ IncludeXmlNamespacesExplicitly
✅ ParseIdentifier(expression: "_foo-bar", identifier: "_foo-bar")
✅ ParseIdentifier(expression: "-foo_bar", identifier: "-foo_bar")
✅ ParseIdentifier(expression: "foo__bar", identifier: "foo__bar")
✅ ParseIdentifier(expression: "foo_bar", identifier: "foo_bar")
✅ ParseIdentifier(expression: "foo\+bar", identifier: "foo+bar")
✅ ParseSelector
✅ RemoveElementsFromReader
✅ RemoveNamespacesFromElement
✅ Render
✅ RenderExpression
✅ SelectEmptyDiv
✅ ToXPath(css: ".foo", xpath: ".//[[contains(concat(" ",normalize-space(@Class)"···)
✅ ToXPath(css: "[[data-tags|=flow]]", xpath: ".//
[[@data-tags="flow" or starts-with(@data-tags"···)
✅ ToXPath(css: "[[role*=nu]]", xpath: ".//*[[contains(@ROLE,"nu")]]")
✅ ToXPath(css: "foo > bar > baz", xpath: ".//foo/bar/baz")
✅ ToXPath(css: "foo > bar", xpath: ".//foo/bar")
✅ ToXPath(css: "foo ~ bar", xpath: ".//foo/following-sibling::bar")
✅ ToXPath(css: "foo", xpath: ".//foo")

from dotnet-retest v0.6.3 on .NET 8.0.8 with 💜

@devlooped-bot
Copy link
Member Author

111 passed 111 passed

🧪 Details on Ubuntu 22.04.5 LTS

✅ AttributeSelectorNormalizesQuotes(expression: "[[data*='hello world']]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data*="hello world"]]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data='hello world']]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data="hello world"]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data=hello world]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()
="hello world"]]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()="hello world"]]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()=hello world]]", xpath: "[[text()="hello world"]]")
✅ CanChangeToUpperCaseHtml
✅ CanParseAttributeSelector(expression: "[[ role= ui ]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role = ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role]]", attributeName: "role", attributeValue: null, matching: null)
✅ CanParseAttributeSelector(expression: "[[role*=ui]]", attributeName: "role", attributeValue: "ui", matching: Substring)
✅ CanParseAttributeSelector(expression: "[[role^=ui]]", attributeName: "role", attributeValue: "ui", matching: Prefix)
✅ CanParseAttributeSelector(expression: "[[role=ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role|=ui]]", attributeName: "role", attributeValue: "ui", matching: Dash)
✅ CanParseAttributeSelector(expression: "[[role~=ui]]", attributeName: "role", attributeValue: "ui", matching: Includes)
✅ CanParseAttributeSelector(expression: "[[role$=ui]]", attributeName: "role", attributeValue: "ui", matching: Suffix)
✅ CanParseIdSequenceAlone
✅ CanParseMatching(expression: "=", matching: Substring)
✅ CanParseMatching(expression: "^=", matching: Prefix)
✅ CanParseMatching(expression: "=", matching: Equals)
✅ CanParseMatching(expression: "|=", matching: Dash)
✅ CanParseMatching(expression: "~=", matching: Includes)
✅ CanParseMatching(expression: "$=", matching: Suffix)
✅ CanParseSelector1
✅ CanParseSelector2
✅ CanParseSelectorWithEscapedChar
✅ CanParseTextSelector(expression: "[[ text()= ui ]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text() = ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()]]", attributeName: "text()", attributeValue: null, matching: null)
✅ CanParseTextSelector(expression: "[[text()
=ui]]", attributeName: "text()", attributeValue: "ui", matching: Substring)
✅ CanParseTextSelector(expression: "[[text()^=ui]]", attributeName: "text()", attributeValue: "ui", matching: Prefix)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()|=ui]]", attributeName: "text()", attributeValue: "ui", matching: Dash)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Includes)
✅ CanParseTextSelector(expression: "[[text()$=ui]]", attributeName: "text()", attributeValue: "ui", matching: Suffix)
✅ CanParseTypeAndClassSequence
✅ CanParseTypeSelector
✅ CanParseTypeSelectorWithNoNamespace
✅ CanParseTypeSelectorWithWidcardNamespace
✅ CanParseUniversalAndIdSequence
✅ CanParseUniversalSelector
✅ CanParseUniversalSelectorWithNoNamespace
✅ CanParseUniversalSelectorWithWidcardNamespace
✅ EvaluatePageHtml(expression: ":empty", expected: " ")
✅ EvaluatePageHtml(expression: ".container", expected: "Hello1234")
✅ EvaluatePageHtml(expression: ".item__hiden-content", expected: "Archivo")
✅ EvaluatePageHtml(expression: ".main", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "[[tags
=flow]]", expected: "File Edit")
✅ EvaluatePageHtml(expression: "[[tags~=selected]]", expected: "File")
✅ EvaluatePageHtml(expression: "#title", expected: "Hello")
✅ EvaluatePageHtml(expression: "body > div > span", expected: "1 2 4")
✅ EvaluatePageHtml(expression: "body > div:nth-of-type(3)", expected: "Standard")
✅ EvaluatePageHtml(expression: "body > span:nth-child(5)", expected: "5")
✅ EvaluatePageHtml(expression: "div > div", expected: "Hello")
✅ EvaluatePageHtml(expression: "div span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "div span:last-of-type", expected: "4")
✅ EvaluatePageHtml(expression: "div:first-child", expected: "Warning Hello")
✅ EvaluatePageHtml(expression: "div:has(div[[id]], span[[id=one]])", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "div:last-child", expected: "Footer")
✅ EvaluatePageHtml(expression: "div.menuitem", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role]],span", expected: "Warning 1 2 4 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]]", expected: "Warning Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]][[lang|=es]]", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role*=nu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]:not([[role=menuitem]])", expected: "Standard")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role=alert]]", expected: "Warning")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]:nth-of-type(2)", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role$=item]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]] + div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]]+div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[text()=Hello]] + span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "h1:only-child", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "input:checked", expected: " ")
✅ EvaluatePageHtml(expression: "option:checked", expected: "second")
✅ EvaluatePageHtml(expression: "option[[selected="selected"]]", expected: "second")
✅ EvaluatePageHtml(expression: "p:has(h1)", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "span + p", expected: "3")
✅ EvaluatePageHtml(expression: "span:not([[id]])", expected: "4 5")
✅ EvaluatePageHtml(expression: "span:not([[text()='4']]),div[[role]]", expected: "Warning 1 2 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "span", expected: "1 2 4 5")
✅ ExcludesScriptsByDefault
✅ ExcludesStylesByDefault
✅ ExcludesXmlNamespacesByDefault
✅ HtmlSettings
✅ IncludeScriptsExplicitSettings
✅ IncludeStylesExplicitSettings
✅ IncludeXmlNamespacesExplicitly
✅ ParseIdentifier(expression: "_foo-bar", identifier: "_foo-bar")
✅ ParseIdentifier(expression: "-foo_bar", identifier: "-foo_bar")
✅ ParseIdentifier(expression: "foo__bar", identifier: "foo__bar")
✅ ParseIdentifier(expression: "foo_bar", identifier: "foo_bar")
✅ ParseIdentifier(expression: "foo\+bar", identifier: "foo+bar")
✅ ParseSelector
✅ RemoveElementsFromReader
✅ RemoveNamespacesFromElement
✅ Render
✅ RenderExpression
✅ SelectEmptyDiv
✅ ToXPath(css: ".foo", xpath: ".//[[contains(concat(" ",normalize-space(@Class)"···)
✅ ToXPath(css: "[[data-tags|=flow]]", xpath: ".//
[[@data-tags="flow" or starts-with(@data-tags"···)
✅ ToXPath(css: "[[role*=nu]]", xpath: ".//*[[contains(@ROLE,"nu")]]")
✅ ToXPath(css: "foo > bar > baz", xpath: ".//foo/bar/baz")
✅ ToXPath(css: "foo > bar", xpath: ".//foo/bar")
✅ ToXPath(css: "foo ~ bar", xpath: ".//foo/following-sibling::bar")
✅ ToXPath(css: "foo", xpath: ".//foo")

from dotnet-retest v0.6.3 on .NET 8.0.8 with 💜

@devlooped-bot
Copy link
Member Author

111 passed 111 passed

🧪 Details on Ubuntu 22.04.5 LTS

✅ AttributeSelectorNormalizesQuotes(expression: "[[data*='hello world']]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data*="hello world"]]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data='hello world']]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data="hello world"]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data=hello world]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()
="hello world"]]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()="hello world"]]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()=hello world]]", xpath: "[[text()="hello world"]]")
✅ CanChangeToUpperCaseHtml
✅ CanParseAttributeSelector(expression: "[[ role= ui ]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role = ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role]]", attributeName: "role", attributeValue: null, matching: null)
✅ CanParseAttributeSelector(expression: "[[role*=ui]]", attributeName: "role", attributeValue: "ui", matching: Substring)
✅ CanParseAttributeSelector(expression: "[[role^=ui]]", attributeName: "role", attributeValue: "ui", matching: Prefix)
✅ CanParseAttributeSelector(expression: "[[role=ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role|=ui]]", attributeName: "role", attributeValue: "ui", matching: Dash)
✅ CanParseAttributeSelector(expression: "[[role~=ui]]", attributeName: "role", attributeValue: "ui", matching: Includes)
✅ CanParseAttributeSelector(expression: "[[role$=ui]]", attributeName: "role", attributeValue: "ui", matching: Suffix)
✅ CanParseIdSequenceAlone
✅ CanParseMatching(expression: "=", matching: Substring)
✅ CanParseMatching(expression: "^=", matching: Prefix)
✅ CanParseMatching(expression: "=", matching: Equals)
✅ CanParseMatching(expression: "|=", matching: Dash)
✅ CanParseMatching(expression: "~=", matching: Includes)
✅ CanParseMatching(expression: "$=", matching: Suffix)
✅ CanParseSelector1
✅ CanParseSelector2
✅ CanParseSelectorWithEscapedChar
✅ CanParseTextSelector(expression: "[[ text()= ui ]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text() = ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()]]", attributeName: "text()", attributeValue: null, matching: null)
✅ CanParseTextSelector(expression: "[[text()
=ui]]", attributeName: "text()", attributeValue: "ui", matching: Substring)
✅ CanParseTextSelector(expression: "[[text()^=ui]]", attributeName: "text()", attributeValue: "ui", matching: Prefix)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()|=ui]]", attributeName: "text()", attributeValue: "ui", matching: Dash)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Includes)
✅ CanParseTextSelector(expression: "[[text()$=ui]]", attributeName: "text()", attributeValue: "ui", matching: Suffix)
✅ CanParseTypeAndClassSequence
✅ CanParseTypeSelector
✅ CanParseTypeSelectorWithNoNamespace
✅ CanParseTypeSelectorWithWidcardNamespace
✅ CanParseUniversalAndIdSequence
✅ CanParseUniversalSelector
✅ CanParseUniversalSelectorWithNoNamespace
✅ CanParseUniversalSelectorWithWidcardNamespace
✅ EvaluatePageHtml(expression: ":empty", expected: " ")
✅ EvaluatePageHtml(expression: ".container", expected: "Hello1234")
✅ EvaluatePageHtml(expression: ".item__hiden-content", expected: "Archivo")
✅ EvaluatePageHtml(expression: ".main", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "[[tags
=flow]]", expected: "File Edit")
✅ EvaluatePageHtml(expression: "[[tags~=selected]]", expected: "File")
✅ EvaluatePageHtml(expression: "#title", expected: "Hello")
✅ EvaluatePageHtml(expression: "body > div > span", expected: "1 2 4")
✅ EvaluatePageHtml(expression: "body > div:nth-of-type(3)", expected: "Standard")
✅ EvaluatePageHtml(expression: "body > span:nth-child(5)", expected: "5")
✅ EvaluatePageHtml(expression: "div > div", expected: "Hello")
✅ EvaluatePageHtml(expression: "div span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "div span:last-of-type", expected: "4")
✅ EvaluatePageHtml(expression: "div:first-child", expected: "Warning Hello")
✅ EvaluatePageHtml(expression: "div:has(div[[id]], span[[id=one]])", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "div:last-child", expected: "Footer")
✅ EvaluatePageHtml(expression: "div.menuitem", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role]],span", expected: "Warning 1 2 4 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]]", expected: "Warning Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]][[lang|=es]]", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role*=nu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]:not([[role=menuitem]])", expected: "Standard")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role=alert]]", expected: "Warning")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]:nth-of-type(2)", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role$=item]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]] + div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]]+div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[text()=Hello]] + span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "h1:only-child", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "input:checked", expected: " ")
✅ EvaluatePageHtml(expression: "option:checked", expected: "second")
✅ EvaluatePageHtml(expression: "option[[selected="selected"]]", expected: "second")
✅ EvaluatePageHtml(expression: "p:has(h1)", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "span + p", expected: "3")
✅ EvaluatePageHtml(expression: "span:not([[id]])", expected: "4 5")
✅ EvaluatePageHtml(expression: "span:not([[text()='4']]),div[[role]]", expected: "Warning 1 2 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "span", expected: "1 2 4 5")
✅ ExcludesScriptsByDefault
✅ ExcludesStylesByDefault
✅ ExcludesXmlNamespacesByDefault
✅ HtmlSettings
✅ IncludeScriptsExplicitSettings
✅ IncludeStylesExplicitSettings
✅ IncludeXmlNamespacesExplicitly
✅ ParseIdentifier(expression: "_foo-bar", identifier: "_foo-bar")
✅ ParseIdentifier(expression: "-foo_bar", identifier: "-foo_bar")
✅ ParseIdentifier(expression: "foo__bar", identifier: "foo__bar")
✅ ParseIdentifier(expression: "foo_bar", identifier: "foo_bar")
✅ ParseIdentifier(expression: "foo\+bar", identifier: "foo+bar")
✅ ParseSelector
✅ RemoveElementsFromReader
✅ RemoveNamespacesFromElement
✅ Render
✅ RenderExpression
✅ SelectEmptyDiv
✅ ToXPath(css: ".foo", xpath: ".//[[contains(concat(" ",normalize-space(@Class)"···)
✅ ToXPath(css: "[[data-tags|=flow]]", xpath: ".//
[[@data-tags="flow" or starts-with(@data-tags"···)
✅ ToXPath(css: "[[role*=nu]]", xpath: ".//*[[contains(@ROLE,"nu")]]")
✅ ToXPath(css: "foo > bar > baz", xpath: ".//foo/bar/baz")
✅ ToXPath(css: "foo > bar", xpath: ".//foo/bar")
✅ ToXPath(css: "foo ~ bar", xpath: ".//foo/following-sibling::bar")
✅ ToXPath(css: "foo", xpath: ".//foo")

from dotnet-retest v0.6.3 on .NET 8.0.8 with 💜

@devlooped-bot
Copy link
Member Author

111 passed 111 passed

🧪 Details on Ubuntu 22.04.5 LTS

✅ AttributeSelectorNormalizesQuotes(expression: "[[data*='hello world']]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data*="hello world"]]", xpath: "[[contains(@DaTa,"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data='hello world']]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data="hello world"]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[data=hello world]]", xpath: "[[@DaTa="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()
="hello world"]]", xpath: "[[contains(text(),"hello world")]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()='hello world']]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()="hello world"]]", xpath: "[[text()="hello world"]]")
✅ AttributeSelectorNormalizesQuotes(expression: "[[text()=hello world]]", xpath: "[[text()="hello world"]]")
✅ CanChangeToUpperCaseHtml
✅ CanParseAttributeSelector(expression: "[[ role= ui ]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role = ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role]]", attributeName: "role", attributeValue: null, matching: null)
✅ CanParseAttributeSelector(expression: "[[role*=ui]]", attributeName: "role", attributeValue: "ui", matching: Substring)
✅ CanParseAttributeSelector(expression: "[[role^=ui]]", attributeName: "role", attributeValue: "ui", matching: Prefix)
✅ CanParseAttributeSelector(expression: "[[role=ui]]", attributeName: "role", attributeValue: "ui", matching: Equals)
✅ CanParseAttributeSelector(expression: "[[role|=ui]]", attributeName: "role", attributeValue: "ui", matching: Dash)
✅ CanParseAttributeSelector(expression: "[[role~=ui]]", attributeName: "role", attributeValue: "ui", matching: Includes)
✅ CanParseAttributeSelector(expression: "[[role$=ui]]", attributeName: "role", attributeValue: "ui", matching: Suffix)
✅ CanParseIdSequenceAlone
✅ CanParseMatching(expression: "=", matching: Substring)
✅ CanParseMatching(expression: "^=", matching: Prefix)
✅ CanParseMatching(expression: "=", matching: Equals)
✅ CanParseMatching(expression: "|=", matching: Dash)
✅ CanParseMatching(expression: "~=", matching: Includes)
✅ CanParseMatching(expression: "$=", matching: Suffix)
✅ CanParseSelector1
✅ CanParseSelector2
✅ CanParseSelectorWithEscapedChar
✅ CanParseTextSelector(expression: "[[ text()= ui ]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text() = ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()]]", attributeName: "text()", attributeValue: null, matching: null)
✅ CanParseTextSelector(expression: "[[text()
=ui]]", attributeName: "text()", attributeValue: "ui", matching: Substring)
✅ CanParseTextSelector(expression: "[[text()^=ui]]", attributeName: "text()", attributeValue: "ui", matching: Prefix)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Equals)
✅ CanParseTextSelector(expression: "[[text()|=ui]]", attributeName: "text()", attributeValue: "ui", matching: Dash)
✅ CanParseTextSelector(expression: "[[text()=ui]]", attributeName: "text()", attributeValue: "ui", matching: Includes)
✅ CanParseTextSelector(expression: "[[text()$=ui]]", attributeName: "text()", attributeValue: "ui", matching: Suffix)
✅ CanParseTypeAndClassSequence
✅ CanParseTypeSelector
✅ CanParseTypeSelectorWithNoNamespace
✅ CanParseTypeSelectorWithWidcardNamespace
✅ CanParseUniversalAndIdSequence
✅ CanParseUniversalSelector
✅ CanParseUniversalSelectorWithNoNamespace
✅ CanParseUniversalSelectorWithWidcardNamespace
✅ EvaluatePageHtml(expression: ":empty", expected: " ")
✅ EvaluatePageHtml(expression: ".container", expected: "Hello1234")
✅ EvaluatePageHtml(expression: ".item__hiden-content", expected: "Archivo")
✅ EvaluatePageHtml(expression: ".main", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "[[tags
=flow]]", expected: "File Edit")
✅ EvaluatePageHtml(expression: "[[tags~=selected]]", expected: "File")
✅ EvaluatePageHtml(expression: "#title", expected: "Hello")
✅ EvaluatePageHtml(expression: "body > div > span", expected: "1 2 4")
✅ EvaluatePageHtml(expression: "body > div:nth-of-type(3)", expected: "Standard")
✅ EvaluatePageHtml(expression: "body > span:nth-child(5)", expected: "5")
✅ EvaluatePageHtml(expression: "div > div", expected: "Hello")
✅ EvaluatePageHtml(expression: "div span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "div span:last-of-type", expected: "4")
✅ EvaluatePageHtml(expression: "div:first-child", expected: "Warning Hello")
✅ EvaluatePageHtml(expression: "div:has(div[[id]], span[[id=one]])", expected: "Hello1234")
✅ EvaluatePageHtml(expression: "div:last-child", expected: "Footer")
✅ EvaluatePageHtml(expression: "div.menuitem", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role]],span", expected: "Warning 1 2 4 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]]", expected: "Warning Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "div[[role]][[lang|=es]]", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role*=nu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]:not([[role=menuitem]])", expected: "Standard")
✅ EvaluatePageHtml(expression: "div[[role^=menu]]", expected: "Standard File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role=alert]]", expected: "Warning")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]:nth-of-type(2)", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[role=menuitem]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[role$=item]]", expected: "File Archivo Edit")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]] + div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[tags^="selected flow"]]+div", expected: "Archivo")
✅ EvaluatePageHtml(expression: "div[[text()=Hello]] + span:first-of-type", expected: "1")
✅ EvaluatePageHtml(expression: "h1:only-child", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "input:checked", expected: " ")
✅ EvaluatePageHtml(expression: "option:checked", expected: "second")
✅ EvaluatePageHtml(expression: "option[[selected="selected"]]", expected: "second")
✅ EvaluatePageHtml(expression: "p:has(h1)", expected: "Sub-header")
✅ EvaluatePageHtml(expression: "span + p", expected: "3")
✅ EvaluatePageHtml(expression: "span:not([[id]])", expected: "4 5")
✅ EvaluatePageHtml(expression: "span:not([[text()='4']]),div[[role]]", expected: "Warning 1 2 5 Standard File Archivo Edit Footer")
✅ EvaluatePageHtml(expression: "span", expected: "1 2 4 5")
✅ ExcludesScriptsByDefault
✅ ExcludesStylesByDefault
✅ ExcludesXmlNamespacesByDefault
✅ HtmlSettings
✅ IncludeScriptsExplicitSettings
✅ IncludeStylesExplicitSettings
✅ IncludeXmlNamespacesExplicitly
✅ ParseIdentifier(expression: "_foo-bar", identifier: "_foo-bar")
✅ ParseIdentifier(expression: "-foo_bar", identifier: "-foo_bar")
✅ ParseIdentifier(expression: "foo__bar", identifier: "foo__bar")
✅ ParseIdentifier(expression: "foo_bar", identifier: "foo_bar")
✅ ParseIdentifier(expression: "foo\+bar", identifier: "foo+bar")
✅ ParseSelector
✅ RemoveElementsFromReader
✅ RemoveNamespacesFromElement
✅ Render
✅ RenderExpression
✅ SelectEmptyDiv
✅ ToXPath(css: ".foo", xpath: ".//[[contains(concat(" ",normalize-space(@Class)"···)
✅ ToXPath(css: "[[data-tags|=flow]]", xpath: ".//
[[@data-tags="flow" or starts-with(@data-tags"···)
✅ ToXPath(css: "[[role*=nu]]", xpath: ".//*[[contains(@ROLE,"nu")]]")
✅ ToXPath(css: "foo > bar > baz", xpath: ".//foo/bar/baz")
✅ ToXPath(css: "foo > bar", xpath: ".//foo/bar")
✅ ToXPath(css: "foo ~ bar", xpath: ".//foo/following-sibling::bar")
✅ ToXPath(css: "foo", xpath: ".//foo")

from dotnet-retest v0.6.3 on .NET 8.0.8 with 💜

# devlooped/oss

- Improve triage actions on issues devlooped/oss@33000c0
- SponsorLink code should be checked as regular code devlooped/oss@e81ab75
- Set Version from VersionLabel if it's a refs/tags/ devlooped/oss@57653a2
- Cleanup build and publish to use VersionLabel devlooped/oss@14deaea
- Improve default value for GenerateDocumentationFile devlooped/oss@b76de49
- Automatically use the new terminal logger if possible devlooped/oss@27a5c9a
- Allow choosing build configuration on dispatch devlooped/oss@fef4635
- Remove shared community files from ignores devlooped/oss@65f89e0
- Simplify testing by switching to dotnet-retest devlooped/oss@b5bb972
- We don't push just from ubuntu anymore devlooped/oss@7ec9101
- Allow seamless sleet upgrades without requiring workflow updates devlooped/oss@5e17ad6
- Fix typo in targets devlooped/oss@33a20db
- If we provide a docs category, don't exclude docs :) devlooped/oss@0c23e24
- Don't copy default icon to output directory devlooped/oss@9263184
- Update typed resgen to opt-in only devlooped/oss@a8b2080
- Update includes.yml to include top-level .md devlooped/oss@d152e74
- Skip discussion issues when generating changelog devlooped/oss@08d83cb
- Simplify .gitattributes devlooped/oss@5f92a68
- Add trx logger by default to CLI builds devlooped/oss@a75b141
- Remove -l:trx since it's just for dotnet test, not build devlooped/oss@0f7f7f7

# clarius/pages

- Bump github-pages to fix build error clarius/pages@90fa16e
@kzu kzu merged commit 32fecda into main Oct 9, 2024
4 checks passed
@kzu kzu deleted the dotnet-file-sync branch October 9, 2024 18:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants