diff --git a/__tests__/src/AXObjectElementMap-test.js b/__tests__/src/AXObjectElementMap-test.js index ada6799..8ff22bd 100644 --- a/__tests__/src/AXObjectElementMap-test.js +++ b/__tests__/src/AXObjectElementMap-test.js @@ -2,305 +2,115 @@ import expect from 'expect'; import AXObjectElementMap from '../../src/AXObjectElementMap'; +const entriesList = [ + ["AbbrRole", [{"name": "abbr"}]], + ["ArticleRole", [{"name": "article"}]], + ["AudioRole", [{"name": "audio"}]], + ["BlockquoteRole", [{"name": "blockquote"}]], + ["ButtonRole", [{"name": "button"}]], + ["CanvasRole", [{"name": "canvas"}]], + ["CaptionRole", [{"name": "caption"}]], + ["CellRole", [{"name": "td"}]], + ["CheckBoxRole", [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]], + ["ColorWellRole", [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}]], + ["ColumnHeaderRole", [{"name": "th"}]], + ["ComboBoxRole", [{"name": "select"}]], + ["DateRole", [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}]], + ["DateTimeRole", [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}]], + ["DefinitionRole", [{"name": "dfn"}]], + ["DescriptionListDetailRole", [{"name": "dd"}]], + ["DescriptionListRole", [{"name": "dl"}]], + ["DescriptionListTermRole", [{"name": "dt"}]], + ["DetailsRole", [{"name": "details"}]], + ["DialogRole", [{"name": "dialog"}]], + ["DirectoryRole", [{"name": "dir"}]], + ["DisclosureTriangleRole", [{"attributes": [{"name": "open", "value": "open"}], "constraints": ["scoped to a details element"], "name": "summary"}, {"attributes": [{"name": "aria-expanded"}], "constraints": ["scoped to a details element"], "name": "summary"}]], + ["DivRole", [{"name": "div"}]], + ["EmbeddedObjectRole", [{"name": "embed"}]], + ["FigcaptionRole", [{"name": "figcaption"}]], + ["FigureRole", [{"name": "figure"}]], + ["FooterRole", [{"name": "footer"}]], + ["FormRole", [{"name": "form"}]], + ["HeadingRole", [{"name": "h1"}, {"name": "h2"}, {"name": "h3"}, {"name": "h4"}, {"name": "h5"}, {"name": "h6"}]], + ["IframeRole", [{"name": "iframe"}]], + ["ImageMapRole", [{"attributes": [{"name": "usemap"}], "name": "img"}]], + ["ImageRole", [{"name": "img"}]], + ["InlineTextBoxRole", [{"name": "input"}]], + ["InputTimeRole", [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}]], + ["LabelRole", [{"name": "label"}]], + ["LegendRole", [{"name": "legend"}]], + ["LineBreakRole", [{"name": "br"}]], + ["LinkRole", [{"attributes": [{"name": "href"}], "name": "a"}]], + ["ListBoxOptionRole", [{"name": "option"}]], + ["ListBoxRole", [{"name": "datalist"}, {"name": "select"}]], + ["ListItemRole", [{"name": "li"}]], + ["ListRole", [{"name": "ul"}, {"name": "ol"}]], + ["MainRole", [{"name": "main"}]], + ["MarkRole", [{"name": "mark"}]], + ["MarqueeRole", [{"name": "marquee"}]], + ["MenuItemRole", [{"name": "menuitem"}]], + ["MenuRole", [{"name": "menu"}]], + ["MeterRole", [{"name": "meter"}]], + ["NavigationRole", [{"name": "nav"}]], + ["ParagraphRole", [{"name": "p"}]], + ["PreRole", [{"name": "pre"}]], + ["ProgressIndicatorRole", [{"name": "progress"}]], + ["RadioButtonRole", [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}]], + ["RowHeaderRole", [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}]], + ["RowRole", [{"name": "tr"}]], + ["RubyRole", [{"name": "ruby"}]], + ["SearchBoxRole", [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}]], + ["SliderRole", [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}]], + ["SpinButtonRole", [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}]], + ["SwitchRole", [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]], + ["TableRole", [{"name": "table"}]], + ["TextAreaRole", [{"name": "textarea"}]], + ["TextFieldRole", [{"name": "input"}, {"attributes": [{"name": "type", "value": "text"}], "name": "input"}]], + ["TimeRole", [{"name": "time"}]], + ["VideoRole", [{"name": "video"}]], +]; + describe('AXObjectElementMap', function () { describe('iteration', function () { it('should have an iterator defined', function () { expect(AXObjectElementMap[Symbol.iterator]).not.toBeUndefined(); }); - it('should support the spread operator', function () { - expect([...AXObjectElementMap].length).toEqual(64); - expect([...AXObjectElementMap]).toEqual( - expect.arrayContaining( - [ - ["AbbrRole", [{"name": "abbr"}]], - ["ArticleRole", [{"name": "article"}]], - ["AudioRole", [{"name": "audio"}]], - ["BlockquoteRole", [{"name": "blockquote"}]], - ["ButtonRole", [{"name": "button"}]], - ["CanvasRole", [{"name": "canvas"}]], - ["CaptionRole", [{"name": "caption"}]], - ["CellRole", [{"name": "td"}]], - ["CheckBoxRole", [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]], - ["ColorWellRole", [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}]], - ["ColumnHeaderRole", [{"name": "th"}]], - ["ComboBoxRole", [{"name": "select"}]], - ["DateRole", [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}]], - ["DateTimeRole", [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}]], - ["DefinitionRole", [{"name": "dfn"}]], - ["DescriptionListDetailRole", [{"name": "dd"}]], - ["DescriptionListRole", [{"name": "dl"}]], - ["DescriptionListTermRole", [{"name": "dt"}]], - ["DetailsRole", [{"name": "details"}]], - ["DialogRole", [{"name": "dialog"}]], - ["DirectoryRole", [{"name": "dir"}]], - ["DisclosureTriangleRole", [{"name": "summary"}]], - ["DivRole", [{"name": "div"}]], - ["EmbeddedObjectRole", [{"name": "embed"}]], - ["FigcaptionRole", [{"name": "figcaption"}]], - ["FigureRole", [{"name": "figure"}]], - ["FooterRole", [{"name": "footer"}]], - ["FormRole", [{"name": "form"}]], - ["HeadingRole", [{"name": "h1"}, {"name": "h2"}, {"name": "h3"}, {"name": "h4"}, {"name": "h5"}, {"name": "h6"}]], - ["IframeRole", [{"name": "iframe"}]], - ["ImageMapRole", [{"attributes": [{"name": "usemap"}], "name": "img"}]], - ["ImageRole", [{"name": "img"}]], - ["InlineTextBoxRole", [{"name": "input"}]], - ["InputTimeRole", [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}]], - ["LabelRole", [{"name": "label"}]], - ["LegendRole", [{"name": "legend"}]], - ["LineBreakRole", [{"name": "br"}]], - ["LinkRole", [{"attributes": [{"name": "href"}], "name": "a"}]], - ["ListBoxOptionRole", [{"name": "option"}]], - ["ListBoxRole", [{"name": "datalist"}, {"name": "select"}]], - ["ListItemRole", [{"name": "li"}]], - ["ListRole", [{"name": "ul"}, {"name": "ol"}]], - ["MainRole", [{"name": "main"}]], - ["MarkRole", [{"name": "mark"}]], - ["MarqueeRole", [{"name": "marquee"}]], - ["MenuItemRole", [{"name": "menuitem"}]], - ["MenuRole", [{"name": "menu"}]], - ["MeterRole", [{"name": "meter"}]], - ["NavigationRole", [{"name": "nav"}]], - ["ParagraphRole", [{"name": "p"}]], - ["PreRole", [{"name": "pre"}]], - ["ProgressIndicatorRole", [{"name": "progress"}]], - ["RadioButtonRole", [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}]], - ["RowHeaderRole", [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}]], - ["RowRole", [{"name": "tr"}]], - ["RubyRole", [{"name": "ruby"}]], - ["SearchBoxRole", [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}]], - ["SliderRole", [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}]], - ["SpinButtonRole", [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}]], - ["SwitchRole", [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]], - ["TableRole", [{"name": "table"}]], - ["TextFieldRole", [{"name": "input"}, {"attributes": [{"name": "type", "value": "text"}], "name": "input"}]], - ["TimeRole", [{"name": "time"}]], - ["VideoRole", [{"name": "video"}]], - ] - ) - ); + it('should have a specific length', function () { + expect([...AXObjectElementMap].length).toEqual(65); + }); + describe('should support the spread operator', function () { + test.each([...AXObjectElementMap])(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); - it('should support the for..of pattern', function () { + describe('should support the for..of pattern', function () { const output = []; for (const [key, value] of AXObjectElementMap) { output.push([key, value]); } - expect(output).toEqual( - expect.arrayContaining( - [ - ["AbbrRole", [{"name": "abbr"}]], - ["ArticleRole", [{"name": "article"}]], - ["AudioRole", [{"name": "audio"}]], - ["BlockquoteRole", [{"name": "blockquote"}]], - ["ButtonRole", [{"name": "button"}]], - ["CanvasRole", [{"name": "canvas"}]], - ["CaptionRole", [{"name": "caption"}]], - ["CellRole", [{"name": "td"}]], - ["CheckBoxRole", [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]], - ["ColorWellRole", [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}]], - ["ColumnHeaderRole", [{"name": "th"}]], - ["ComboBoxRole", [{"name": "select"}]], - ["DateRole", [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}]], - ["DateTimeRole", [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}]], - ["DefinitionRole", [{"name": "dfn"}]], - ["DescriptionListDetailRole", [{"name": "dd"}]], - ["DescriptionListRole", [{"name": "dl"}]], - ["DescriptionListTermRole", [{"name": "dt"}]], - ["DetailsRole", [{"name": "details"}]], - ["DialogRole", [{"name": "dialog"}]], - ["DirectoryRole", [{"name": "dir"}]], - ["DisclosureTriangleRole", [{"name": "summary"}]], - ["DivRole", [{"name": "div"}]], - ["EmbeddedObjectRole", [{"name": "embed"}]], - ["FigcaptionRole", [{"name": "figcaption"}]], - ["FigureRole", [{"name": "figure"}]], - ["FooterRole", [{"name": "footer"}]], - ["FormRole", [{"name": "form"}]], - ["HeadingRole", [{"name": "h1"}, {"name": "h2"}, {"name": "h3"}, {"name": "h4"}, {"name": "h5"}, {"name": "h6"}]], - ["IframeRole", [{"name": "iframe"}]], - ["ImageMapRole", [{"attributes": [{"name": "usemap"}], "name": "img"}]], - ["ImageRole", [{"name": "img"}]], - ["InlineTextBoxRole", [{"name": "input"}]], - ["InputTimeRole", [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}]], - ["LabelRole", [{"name": "label"}]], - ["LegendRole", [{"name": "legend"}]], - ["LineBreakRole", [{"name": "br"}]], - ["LinkRole", [{"attributes": [{"name": "href"}], "name": "a"}]], - ["ListBoxOptionRole", [{"name": "option"}]], - ["ListBoxRole", [{"name": "datalist"}, {"name": "select"}]], - ["ListItemRole", [{"name": "li"}]], - ["ListRole", [{"name": "ul"}, {"name": "ol"}]], - ["MainRole", [{"name": "main"}]], - ["MarkRole", [{"name": "mark"}]], - ["MarqueeRole", [{"name": "marquee"}]], - ["MenuItemRole", [{"name": "menuitem"}]], - ["MenuRole", [{"name": "menu"}]], - ["MeterRole", [{"name": "meter"}]], - ["NavigationRole", [{"name": "nav"}]], - ["ParagraphRole", [{"name": "p"}]], - ["PreRole", [{"name": "pre"}]], - ["ProgressIndicatorRole", [{"name": "progress"}]], - ["RadioButtonRole", [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}]], - ["RowHeaderRole", [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}]], - ["RowRole", [{"name": "tr"}]], - ["RubyRole", [{"name": "ruby"}]], - ["SearchBoxRole", [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}]], - ["SliderRole", [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}]], - ["SpinButtonRole", [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}]], - ["SwitchRole", [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]], - ["TableRole", [{"name": "table"}]], - ["TextFieldRole", [{"name": "input"}, {"attributes": [{"name": "type", "value": "text"}], "name": "input"}]], - ["TimeRole", [{"name": "time"}]], - ["VideoRole", [{"name": "video"}]], - ] - ) - ); + test.each(output)(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); }); describe('content', function () { - it('entries(), iteration', function () { - expect(AXObjectElementMap.entries()).toEqual( - expect.arrayContaining( - [ - ["AbbrRole", [{"name": "abbr"}]], - ["ArticleRole", [{"name": "article"}]], - ["AudioRole", [{"name": "audio"}]], - ["BlockquoteRole", [{"name": "blockquote"}]], - ["ButtonRole", [{"name": "button"}]], - ["CanvasRole", [{"name": "canvas"}]], - ["CaptionRole", [{"name": "caption"}]], - ["CellRole", [{"name": "td"}]], - ["CheckBoxRole", [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]], - ["ColorWellRole", [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}]], - ["ColumnHeaderRole", [{"name": "th"}]], - ["ComboBoxRole", [{"name": "select"}]], - ["DateRole", [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}]], - ["DateTimeRole", [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}]], - ["DefinitionRole", [{"name": "dfn"}]], - ["DescriptionListDetailRole", [{"name": "dd"}]], - ["DescriptionListRole", [{"name": "dl"}]], - ["DescriptionListTermRole", [{"name": "dt"}]], - ["DetailsRole", [{"name": "details"}]], - ["DialogRole", [{"name": "dialog"}]], - ["DirectoryRole", [{"name": "dir"}]], - ["DisclosureTriangleRole", [{"name": "summary"}]], - ["DivRole", [{"name": "div"}]], - ["EmbeddedObjectRole", [{"name": "embed"}]], - ["FigcaptionRole", [{"name": "figcaption"}]], - ["FigureRole", [{"name": "figure"}]], - ["FooterRole", [{"name": "footer"}]], - ["FormRole", [{"name": "form"}]], - ["HeadingRole", [{"name": "h1"}, {"name": "h2"}, {"name": "h3"}, {"name": "h4"}, {"name": "h5"}, {"name": "h6"}]], - ["IframeRole", [{"name": "iframe"}]], - ["ImageMapRole", [{"attributes": [{"name": "usemap"}], "name": "img"}]], - ["ImageRole", [{"name": "img"}]], - ["InlineTextBoxRole", [{"name": "input"}]], - ["InputTimeRole", [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}]], - ["LabelRole", [{"name": "label"}]], - ["LegendRole", [{"name": "legend"}]], - ["LineBreakRole", [{"name": "br"}]], - ["LinkRole", [{"attributes": [{"name": "href"}], "name": "a"}]], - ["ListBoxOptionRole", [{"name": "option"}]], - ["ListBoxRole", [{"name": "datalist"}, {"name": "select"}]], - ["ListItemRole", [{"name": "li"}]], - ["ListRole", [{"name": "ul"}, {"name": "ol"}]], - ["MainRole", [{"name": "main"}]], - ["MarkRole", [{"name": "mark"}]], - ["MarqueeRole", [{"name": "marquee"}]], - ["MenuItemRole", [{"name": "menuitem"}]], - ["MenuRole", [{"name": "menu"}]], - ["MeterRole", [{"name": "meter"}]], - ["NavigationRole", [{"name": "nav"}]], - ["ParagraphRole", [{"name": "p"}]], - ["PreRole", [{"name": "pre"}]], - ["ProgressIndicatorRole", [{"name": "progress"}]], - ["RadioButtonRole", [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}]], - ["RowHeaderRole", [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}]], - ["RowRole", [{"name": "tr"}]], - ["RubyRole", [{"name": "ruby"}]], - ["SearchBoxRole", [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}]], - ["SliderRole", [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}]], - ["SpinButtonRole", [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}]], - ["SwitchRole", [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]], - ["TableRole", [{"name": "table"}]], - ["TextFieldRole", [{"name": "input"}, {"attributes": [{"name": "type", "value": "text"}], "name": "input"}]], - ["TimeRole", [{"name": "time"}]], - ["VideoRole", [{"name": "video"}]], - ] - ) - ); - expect([...AXObjectElementMap.entries()]).toEqual( - expect.arrayContaining( - [ - ["AbbrRole", [{"name": "abbr"}]], - ["ArticleRole", [{"name": "article"}]], - ["AudioRole", [{"name": "audio"}]], - ["BlockquoteRole", [{"name": "blockquote"}]], - ["ButtonRole", [{"name": "button"}]], - ["CanvasRole", [{"name": "canvas"}]], - ["CaptionRole", [{"name": "caption"}]], - ["CellRole", [{"name": "td"}]], - ["CheckBoxRole", [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]], - ["ColorWellRole", [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}]], - ["ColumnHeaderRole", [{"name": "th"}]], - ["ComboBoxRole", [{"name": "select"}]], - ["DateRole", [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}]], - ["DateTimeRole", [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}]], - ["DefinitionRole", [{"name": "dfn"}]], - ["DescriptionListDetailRole", [{"name": "dd"}]], - ["DescriptionListRole", [{"name": "dl"}]], - ["DescriptionListTermRole", [{"name": "dt"}]], - ["DetailsRole", [{"name": "details"}]], - ["DialogRole", [{"name": "dialog"}]], - ["DirectoryRole", [{"name": "dir"}]], - ["DisclosureTriangleRole", [{"name": "summary"}]], - ["DivRole", [{"name": "div"}]], - ["EmbeddedObjectRole", [{"name": "embed"}]], - ["FigcaptionRole", [{"name": "figcaption"}]], - ["FigureRole", [{"name": "figure"}]], - ["FooterRole", [{"name": "footer"}]], - ["FormRole", [{"name": "form"}]], - ["HeadingRole", [{"name": "h1"}, {"name": "h2"}, {"name": "h3"}, {"name": "h4"}, {"name": "h5"}, {"name": "h6"}]], - ["IframeRole", [{"name": "iframe"}]], - ["ImageMapRole", [{"attributes": [{"name": "usemap"}], "name": "img"}]], - ["ImageRole", [{"name": "img"}]], - ["InlineTextBoxRole", [{"name": "input"}]], - ["InputTimeRole", [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}]], - ["LabelRole", [{"name": "label"}]], - ["LegendRole", [{"name": "legend"}]], - ["LineBreakRole", [{"name": "br"}]], - ["LinkRole", [{"attributes": [{"name": "href"}], "name": "a"}]], - ["ListBoxOptionRole", [{"name": "option"}]], - ["ListBoxRole", [{"name": "datalist"}, {"name": "select"}]], - ["ListItemRole", [{"name": "li"}]], - ["ListRole", [{"name": "ul"}, {"name": "ol"}]], - ["MainRole", [{"name": "main"}]], - ["MarkRole", [{"name": "mark"}]], - ["MarqueeRole", [{"name": "marquee"}]], - ["MenuItemRole", [{"name": "menuitem"}]], - ["MenuRole", [{"name": "menu"}]], - ["MeterRole", [{"name": "meter"}]], - ["NavigationRole", [{"name": "nav"}]], - ["ParagraphRole", [{"name": "p"}]], - ["PreRole", [{"name": "pre"}]], - ["ProgressIndicatorRole", [{"name": "progress"}]], - ["RadioButtonRole", [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}]], - ["RowHeaderRole", [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}]], - ["RowRole", [{"name": "tr"}]], - ["RubyRole", [{"name": "ruby"}]], - ["SearchBoxRole", [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}]], - ["SliderRole", [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}]], - ["SpinButtonRole", [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}]], - ["SwitchRole", [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]], - ["TableRole", [{"name": "table"}]], - ["TextFieldRole", [{"name": "input"}, {"attributes": [{"name": "type", "value": "text"}], "name": "input"}]], - ["TimeRole", [{"name": "time"}]], - ["VideoRole", [{"name": "video"}]], - ] - ) - ); + describe('entries(), iteration', function () { + test.each(AXObjectElementMap.entries())(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); + test.each([...AXObjectElementMap.entries()])(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); - it('forEach()', function () { + describe('forEach()', function () { const output = []; let context; AXObjectElementMap.forEach((value, key, map) => { @@ -309,146 +119,16 @@ describe('AXObjectElementMap', function () { context = map; } }); - expect(output).toEqual( - expect.arrayContaining( - [ - ["AbbrRole", [{"name": "abbr"}]], - ["ArticleRole", [{"name": "article"}]], - ["AudioRole", [{"name": "audio"}]], - ["BlockquoteRole", [{"name": "blockquote"}]], - ["ButtonRole", [{"name": "button"}]], - ["CanvasRole", [{"name": "canvas"}]], - ["CaptionRole", [{"name": "caption"}]], - ["CellRole", [{"name": "td"}]], - ["CheckBoxRole", [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]], - ["ColorWellRole", [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}]], - ["ColumnHeaderRole", [{"name": "th"}]], - ["ComboBoxRole", [{"name": "select"}]], - ["DateRole", [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}]], - ["DateTimeRole", [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}]], - ["DefinitionRole", [{"name": "dfn"}]], - ["DescriptionListDetailRole", [{"name": "dd"}]], - ["DescriptionListRole", [{"name": "dl"}]], - ["DescriptionListTermRole", [{"name": "dt"}]], - ["DetailsRole", [{"name": "details"}]], - ["DialogRole", [{"name": "dialog"}]], - ["DirectoryRole", [{"name": "dir"}]], - ["DisclosureTriangleRole", [{"name": "summary"}]], - ["DivRole", [{"name": "div"}]], - ["EmbeddedObjectRole", [{"name": "embed"}]], - ["FigcaptionRole", [{"name": "figcaption"}]], - ["FigureRole", [{"name": "figure"}]], - ["FooterRole", [{"name": "footer"}]], - ["FormRole", [{"name": "form"}]], - ["HeadingRole", [{"name": "h1"}, {"name": "h2"}, {"name": "h3"}, {"name": "h4"}, {"name": "h5"}, {"name": "h6"}]], - ["IframeRole", [{"name": "iframe"}]], - ["ImageMapRole", [{"attributes": [{"name": "usemap"}], "name": "img"}]], - ["ImageRole", [{"name": "img"}]], - ["InlineTextBoxRole", [{"name": "input"}]], - ["InputTimeRole", [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}]], - ["LabelRole", [{"name": "label"}]], - ["LegendRole", [{"name": "legend"}]], - ["LineBreakRole", [{"name": "br"}]], - ["LinkRole", [{"attributes": [{"name": "href"}], "name": "a"}]], - ["ListBoxOptionRole", [{"name": "option"}]], - ["ListBoxRole", [{"name": "datalist"}, {"name": "select"}]], - ["ListItemRole", [{"name": "li"}]], - ["ListRole", [{"name": "ul"}, {"name": "ol"}]], - ["MainRole", [{"name": "main"}]], - ["MarkRole", [{"name": "mark"}]], - ["MarqueeRole", [{"name": "marquee"}]], - ["MenuItemRole", [{"name": "menuitem"}]], - ["MenuRole", [{"name": "menu"}]], - ["MeterRole", [{"name": "meter"}]], - ["NavigationRole", [{"name": "nav"}]], - ["ParagraphRole", [{"name": "p"}]], - ["PreRole", [{"name": "pre"}]], - ["ProgressIndicatorRole", [{"name": "progress"}]], - ["RadioButtonRole", [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}]], - ["RowHeaderRole", [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}]], - ["RowRole", [{"name": "tr"}]], - ["RubyRole", [{"name": "ruby"}]], - ["SearchBoxRole", [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}]], - ["SliderRole", [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}]], - ["SpinButtonRole", [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}]], - ["SwitchRole", [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]], - ["TableRole", [{"name": "table"}]], - ["TextFieldRole", [{"name": "input"}, {"attributes": [{"name": "type", "value": "text"}], "name": "input"}]], - ["TimeRole", [{"name": "time"}]], - ["VideoRole", [{"name": "video"}]], - ] - ) - ); - expect(context).toEqual( - expect.arrayContaining( - [ - ["AbbrRole", [{"name": "abbr"}]], - ["ArticleRole", [{"name": "article"}]], - ["AudioRole", [{"name": "audio"}]], - ["BlockquoteRole", [{"name": "blockquote"}]], - ["ButtonRole", [{"name": "button"}]], - ["CanvasRole", [{"name": "canvas"}]], - ["CaptionRole", [{"name": "caption"}]], - ["CellRole", [{"name": "td"}]], - ["CheckBoxRole", [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]], - ["ColorWellRole", [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}]], - ["ColumnHeaderRole", [{"name": "th"}]], - ["ComboBoxRole", [{"name": "select"}]], - ["DateRole", [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}]], - ["DateTimeRole", [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}]], - ["DefinitionRole", [{"name": "dfn"}]], - ["DescriptionListDetailRole", [{"name": "dd"}]], - ["DescriptionListRole", [{"name": "dl"}]], - ["DescriptionListTermRole", [{"name": "dt"}]], - ["DetailsRole", [{"name": "details"}]], - ["DialogRole", [{"name": "dialog"}]], - ["DirectoryRole", [{"name": "dir"}]], - ["DisclosureTriangleRole", [{"name": "summary"}]], - ["DivRole", [{"name": "div"}]], - ["EmbeddedObjectRole", [{"name": "embed"}]], - ["FigcaptionRole", [{"name": "figcaption"}]], - ["FigureRole", [{"name": "figure"}]], - ["FooterRole", [{"name": "footer"}]], - ["FormRole", [{"name": "form"}]], - ["HeadingRole", [{"name": "h1"}, {"name": "h2"}, {"name": "h3"}, {"name": "h4"}, {"name": "h5"}, {"name": "h6"}]], - ["IframeRole", [{"name": "iframe"}]], - ["ImageMapRole", [{"attributes": [{"name": "usemap"}], "name": "img"}]], - ["ImageRole", [{"name": "img"}]], - ["InlineTextBoxRole", [{"name": "input"}]], - ["InputTimeRole", [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}]], - ["LabelRole", [{"name": "label"}]], - ["LegendRole", [{"name": "legend"}]], - ["LineBreakRole", [{"name": "br"}]], - ["LinkRole", [{"attributes": [{"name": "href"}], "name": "a"}]], - ["ListBoxOptionRole", [{"name": "option"}]], - ["ListBoxRole", [{"name": "datalist"}, {"name": "select"}]], - ["ListItemRole", [{"name": "li"}]], - ["ListRole", [{"name": "ul"}, {"name": "ol"}]], - ["MainRole", [{"name": "main"}]], - ["MarkRole", [{"name": "mark"}]], - ["MarqueeRole", [{"name": "marquee"}]], - ["MenuItemRole", [{"name": "menuitem"}]], - ["MenuRole", [{"name": "menu"}]], - ["MeterRole", [{"name": "meter"}]], - ["NavigationRole", [{"name": "nav"}]], - ["ParagraphRole", [{"name": "p"}]], - ["PreRole", [{"name": "pre"}]], - ["ProgressIndicatorRole", [{"name": "progress"}]], - ["RadioButtonRole", [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}]], - ["RowHeaderRole", [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}]], - ["RowRole", [{"name": "tr"}]], - ["RubyRole", [{"name": "ruby"}]], - ["SearchBoxRole", [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}]], - ["SliderRole", [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}]], - ["SpinButtonRole", [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}]], - ["SwitchRole", [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]], - ["TableRole", [{"name": "table"}]], - ["TextFieldRole", [{"name": "input"}, {"attributes": [{"name": "type", "value": "text"}], "name": "input"}]], - ["TimeRole", [{"name": "time"}]], - ["VideoRole", [{"name": "video"}]], - ] - ) - ); + test.each(output)(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); + test.each(context)(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); it('get()', function () { expect(AXObjectElementMap.get("AbbrRole")).toEqual([{"name": "abbr"}]); @@ -472,7 +152,7 @@ describe('AXObjectElementMap', function () { expect(AXObjectElementMap.get("DetailsRole")).toEqual([{"name": "details"}]); expect(AXObjectElementMap.get("DialogRole")).toEqual([{"name": "dialog"}]); expect(AXObjectElementMap.get("DirectoryRole")).toEqual([{"name": "dir"}]); - expect(AXObjectElementMap.get("DisclosureTriangleRole")).toEqual([{"name": "summary"}]); + expect(AXObjectElementMap.get("DisclosureTriangleRole")).toEqual([{"attributes": [{"name": "open", "value": "open"}], "constraints": ["scoped to a details element"], "name": "summary"}, {"attributes": [{"name": "aria-expanded"}], "constraints": ["scoped to a details element"], "name": "summary"}]); expect(AXObjectElementMap.get("DivRole")).toEqual([{"name": "div"}]); expect(AXObjectElementMap.get("EmbeddedObjectRole")).toEqual([{"name": "embed"}]); expect(AXObjectElementMap.get("FigcaptionRole")).toEqual([{"name": "figcaption"}]); @@ -512,6 +192,7 @@ describe('AXObjectElementMap', function () { expect(AXObjectElementMap.get("SpinButtonRole")).toEqual([{"attributes": [{"name": "type", "value": "number"}], "name": "input"}]); expect(AXObjectElementMap.get("SwitchRole")).toEqual([{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}]); expect(AXObjectElementMap.get("TableRole")).toEqual([{"name": "table"}]); + expect(AXObjectElementMap.get("TextAreaRole")).toEqual([{"name": "textarea"}]), expect(AXObjectElementMap.get("TextFieldRole")).toEqual([{"name": "input"}, {"attributes": [{"name": "type", "value": "text"}], "name": "input"}]); expect(AXObjectElementMap.get("TimeRole")).toEqual([{"name": "time"}]); expect(AXObjectElementMap.get("VideoRole")).toEqual([{"name": "video"}]); @@ -520,289 +201,31 @@ describe('AXObjectElementMap', function () { expect(AXObjectElementMap.has('DivRole')).toEqual(true); expect(AXObjectElementMap.has('DoveRole')).toEqual(false); }); - it('keys(), iteration', function() { - expect(AXObjectElementMap.keys()).toEqual( - expect.arrayContaining( - [ - "AbbrRole", - "ArticleRole", - "AudioRole", - "BlockquoteRole", - "ButtonRole", - "CanvasRole", - "CaptionRole", - "CellRole", - "CheckBoxRole", - "ColorWellRole", - "ColumnHeaderRole", - "ComboBoxRole", - "DateRole", - "DateTimeRole", - "DefinitionRole", - "DescriptionListDetailRole", - "DescriptionListRole", - "DescriptionListTermRole", - "DetailsRole", - "DialogRole", - "DirectoryRole", - "DisclosureTriangleRole", - "DivRole", - "EmbeddedObjectRole", - "FigcaptionRole", - "FigureRole", - "FooterRole", - "FormRole", - "HeadingRole", - "IframeRole", - "ImageMapRole", - "ImageRole", - "InlineTextBoxRole", - "InputTimeRole", - "LabelRole", - "LegendRole", - "LineBreakRole", - "LinkRole", - "ListBoxOptionRole", - "ListBoxRole", - "ListItemRole", - "ListRole", - "MainRole", - "MarkRole", - "MarqueeRole", - "MenuItemRole", - "MenuRole", - "MeterRole", - "NavigationRole", - "ParagraphRole", - "PreRole", - "ProgressIndicatorRole", - "RadioButtonRole", - "RowHeaderRole", - "RowRole", - "RubyRole", - "SearchBoxRole", - "SliderRole", - "SpinButtonRole", - "SwitchRole", - "TableRole", - "TextFieldRole", - "TimeRole", - "VideoRole", - ] - ) - ); - expect([...AXObjectElementMap.keys()]).toEqual( - expect.arrayContaining( - [ - "AbbrRole", - "ArticleRole", - "AudioRole", - "BlockquoteRole", - "ButtonRole", - "CanvasRole", - "CaptionRole", - "CellRole", - "CheckBoxRole", - "ColorWellRole", - "ColumnHeaderRole", - "ComboBoxRole", - "DateRole", - "DateTimeRole", - "DefinitionRole", - "DescriptionListDetailRole", - "DescriptionListRole", - "DescriptionListTermRole", - "DetailsRole", - "DialogRole", - "DirectoryRole", - "DisclosureTriangleRole", - "DivRole", - "EmbeddedObjectRole", - "FigcaptionRole", - "FigureRole", - "FooterRole", - "FormRole", - "HeadingRole", - "IframeRole", - "ImageMapRole", - "ImageRole", - "InlineTextBoxRole", - "InputTimeRole", - "LabelRole", - "LegendRole", - "LineBreakRole", - "LinkRole", - "ListBoxOptionRole", - "ListBoxRole", - "ListItemRole", - "ListRole", - "MainRole", - "MarkRole", - "MarqueeRole", - "MenuItemRole", - "MenuRole", - "MeterRole", - "NavigationRole", - "ParagraphRole", - "PreRole", - "ProgressIndicatorRole", - "RadioButtonRole", - "RowHeaderRole", - "RowRole", - "RubyRole", - "SearchBoxRole", - "SliderRole", - "SpinButtonRole", - "SwitchRole", - "TableRole", - "TextFieldRole", - "TimeRole", - "VideoRole", - ] - ) - ); + describe('keys(), iteration', function() { + const entriesKeys = entriesList.map(entry => entry[0]); + test.each(AXObjectElementMap.keys())('Testing key: %o', (key) => { + expect(entriesKeys).toEqual( + expect.arrayContaining([key]), + ); + }); + test.each([...AXObjectElementMap.keys()])('Testing key: %o', (key) => { + expect(entriesKeys).toEqual( + expect.arrayContaining([key]), + ); + }); }); - it('values(), iteration', function() { - expect(AXObjectElementMap.values()).toEqual( - expect.arrayContaining( - [ - [{"name": "abbr"}], - [{"name": "article"}], - [{"name": "audio"}], - [{"name": "blockquote"}], - [{"name": "button"}], - [{"name": "canvas"}], - [{"name": "caption"}], - [{"name": "td"}], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}], - [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}], - [{"name": "th"}], - [{"name": "select"}], - [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}], - [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}], - [{"name": "dfn"}], - [{"name": "dd"}], - [{"name": "dl"}], - [{"name": "dt"}], - [{"name": "details"}], - [{"name": "dialog"}], - [{"name": "dir"}], - [{"name": "summary"}], - [{"name": "div"}], - [{"name": "embed"}], - [{"name": "figcaption"}], - [{"name": "figure"}], - [{"name": "footer"}], - [{"name": "form"}], - [{"name": "h1"}, {"name": "h2"}, {"name": "h3"}, {"name": "h4"}, {"name": "h5"}, {"name": "h6"}], - [{"name": "iframe"}], - [{"attributes": [{"name": "usemap"}], "name": "img"}], - [{"name": "img"}], - [{"name": "input"}], - [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}], - [{"name": "label"}], - [{"name": "legend"}], - [{"name": "br"}], - [{"attributes": [{"name": "href"}], "name": "a"}], - [{"name": "option"}], - [{"name": "datalist"}, {"name": "select"}], - [{"name": "li"}], - [{"name": "ul"}, {"name": "ol"}], - [{"name": "main"}], - [{"name": "mark"}], - [{"name": "marquee"}], - [{"name": "menuitem"}], - [{"name": "menu"}], - [{"name": "meter"}], - [{"name": "nav"}], - [{"name": "p"}], - [{"name": "pre"}], - [{"name": "progress"}], - [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}], - [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}], - [{"name": "tr"}], - [{"name": "ruby"}], - [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}], - [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}], - [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}], - [{"name": "table"}], - [{"name": "input"}, {"attributes": [{"name": "type", "value": "text"}], "name": "input"}], - [{"name": "time"}], - [{"name": "video"}], - ] - ) - ); - expect([...AXObjectElementMap.values()]).toEqual( - expect.arrayContaining( - [ - [{"name": "abbr"}], - [{"name": "article"}], - [{"name": "audio"}], - [{"name": "blockquote"}], - [{"name": "button"}], - [{"name": "canvas"}], - [{"name": "caption"}], - [{"name": "td"}], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}], - [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}], - [{"name": "th"}], - [{"name": "select"}], - [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}], - [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}], - [{"name": "dfn"}], - [{"name": "dd"}], - [{"name": "dl"}], - [{"name": "dt"}], - [{"name": "details"}], - [{"name": "dialog"}], - [{"name": "dir"}], - [{"name": "summary"}], - [{"name": "div"}], - [{"name": "embed"}], - [{"name": "figcaption"}], - [{"name": "figure"}], - [{"name": "footer"}], - [{"name": "form"}], - [{"name": "h1"}, {"name": "h2"}, {"name": "h3"}, {"name": "h4"}, {"name": "h5"}, {"name": "h6"}], - [{"name": "iframe"}], - [{"attributes": [{"name": "usemap"}], "name": "img"}], - [{"name": "img"}], - [{"name": "input"}], - [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}], - [{"name": "label"}], - [{"name": "legend"}], - [{"name": "br"}], - [{"attributes": [{"name": "href"}], "name": "a"}], - [{"name": "option"}], - [{"name": "datalist"}, {"name": "select"}], - [{"name": "li"}], - [{"name": "ul"}, {"name": "ol"}], - [{"name": "main"}], - [{"name": "mark"}], - [{"name": "marquee"}], - [{"name": "menuitem"}], - [{"name": "menu"}], - [{"name": "meter"}], - [{"name": "nav"}], - [{"name": "p"}], - [{"name": "pre"}], - [{"name": "progress"}], - [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}], - [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}], - [{"name": "tr"}], - [{"name": "ruby"}], - [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}], - [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}], - [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}], - [{"name": "table"}], - [{"name": "input"}, {"attributes": [{"name": "type", "value": "text"}], "name": "input"}], - [{"name": "time"}], - [{"name": "video"}], - ] - ) - ); + describe('values(), iteration', function() { + const entriesValues = entriesList.map(entry => entry[1]); + test.each(AXObjectElementMap.values().map(value => [value]))('Testing value: %o', (value) => { + expect(entriesValues).toEqual( + expect.arrayContaining([value]), + ); + }); + test.each([...AXObjectElementMap.values()].map(value => [value]))('Testing value: %o', (value) => { + expect(entriesValues).toEqual( + expect.arrayContaining([value]), + ); + }); }); }); }); diff --git a/__tests__/src/AXObjectRoleMap-test.js b/__tests__/src/AXObjectRoleMap-test.js index 239d777..09efdf5 100644 --- a/__tests__/src/AXObjectRoleMap-test.js +++ b/__tests__/src/AXObjectRoleMap-test.js @@ -2,325 +2,120 @@ import expect from 'expect'; import AXObjectRoleMap from '../../src/AXObjectRoleMap'; +const entriesList = [ + ["AlertDialogRole", [{"name": "alertdialog"}]], + ["AlertRole", [{"name": "alert"}]], + ["ApplicationRole", [{"name": "application"}]], + ["ArticleRole", [{"name": "article"}]], + ["BannerRole", [{"name": "banner"}]], + ["BusyIndicatorRole", [{"attributes": [{"name": "aria-busy", "value": "true"}]}]], + ["ButtonRole", [{"name": "button"}]], + ["CellRole", [{"name": "cell"}, {"name": "gridcell"}]], + ["CheckBoxRole", [{"name": "checkbox"}]], + ["ColumnHeaderRole", [{"name": "columnheader"}]], + ["ComboBoxRole", [{"name": "combobox"}]], + ["ComplementaryRole", [{"name": "complementary"}]], + ["ContentInfoRole", [{"name": "structureinfo"}]], + ["DialogRole", [{"name": "dialog"}]], + ["DirectoryRole", [{"name": "directory"}]], + ["DocumentRole", [{"name": "document"}]], + ["FeedRole", [{"name": "feed"}]], + ["FigureRole", [{"name": "figure"}]], + ["FormRole", [{"name": "form"}]], + ["GridRole", [{"name": "grid"}]], + ["GroupRole", [{"name": "group"}]], + ["HeadingRole", [{"name": "heading"}]], + ["ImageRole", [{"name": "img"}]], + ["LinkRole", [{"name": "link"}]], + ["ListBoxOptionRole", [{"name": "option"}]], + ["ListBoxRole", [{"name": "listbox"}]], + ["ListItemRole", [{"name": "listitem"}]], + ["ListRole", [{"name": "list"}]], + ["LogRole", [{"name": "log"}]], + ["MainRole", [{"name": "main"}]], + ["MarqueeRole", [{"name": "marquee"}]], + ["MathRole", [{"name": "math"}]], + ["MenuBarRole", [{"name": "menubar"}]], + ["MenuItemRole", [{"name": "menuitem"}]], + ["MenuItemCheckBoxRole", [{"name": "menuitemcheckbox"}]], + ["MenuItemRadioRole", [{"name": "menuitemradio"}]], + ["MenuRole", [{"name": "menu"}]], + ["NavigationRole", [{"name": "navigation"}]], + ["NoneRole", [{"name": "none"}]], + ["NoteRole", [{"name": "note"}]], + ["PresentationalRole", [{"name": "presentation"}]], + ["ProgressIndicatorRole", [{"name": "progressbar"}]], + ["RadioButtonRole", [{"name": "radio"}]], + ["RadioGroupRole", [{"name": "radiogroup"}]], + ["RegionRole", [{"name": "region"}]], + ["RowHeaderRole", [{"name": "rowheader"}]], + ["RowRole", [{"name": "row"}]], + ["ScrollBarRole", [{"name": "scrollbar"}]], + ["SearchRole", [{"name": "search"}]], + ["SearchBoxRole", [{"name": "searchbox"}]], + ["SliderRole", [{"name": "slider"}]], + ["SpinButtonRole", [{"name": "spinbutton"}]], + ["SplitterRole", [{"name": "separator"}]], + ["StatusRole", [{"name": "status"}]], + ["SwitchRole", [{"name": "switch"}]], + ["TabGroupRole", [{"name": "tablist"}]], + ["TabRole", [{"name": "tab"}]], + ["TableRole", [{"name": "table"}]], + ["TabListRole", [{"name": "tablist"}]], + ["TabPanelRole", [{"name": "tabpanel"}]], + ["TermRole", [{"name": "term"}]], + ["TextAreaRole", [{"attributes": [{"name": "aria-multiline", "value": "true"}], "name": "textbox"}]], + ["TextFieldRole", [{"name": "textbox"}]], + ["TimerRole", [{"name": "timer"}]], + ["ToggleButtonRole", [{"attributes": [{"name": "aria-pressed"}]}]], + ["ToolbarRole", [{"name": "toolbar"}]], + ["TreeRole", [{"name": "tree"}]], + ["TreeGridRole", [{"name": "treegrid"}]], + ["TreeItemRole", [{"name": "treeitem"}]], + ["UserInterfaceTooltipRole", [{"name": "tooltip"}]], +]; + describe('AXObjectRoleMap', function () { describe('iteration', function () { it('should have an iterator defined', function () { expect(AXObjectRoleMap[Symbol.iterator]).not.toBeUndefined(); }); - it('should support the spread operator', function () { - expect([...AXObjectRoleMap].length).toEqual(69); - expect([...AXObjectRoleMap]).toEqual( - expect.arrayContaining( - [ - ["AlertDialogRole", [{"name": "alertdialog"}]], - ["AlertRole", [{"name": "alert"}]], - ["ApplicationRole", [{"name": "application"}]], - ["ArticleRole", [{"name": "article"}]], - ["BannerRole", [{"name": "banner"}]], - ["BusyIndicatorRole", [{"attributes": [{"name": "aria-busy", "value": "true"}]}]], - ["ButtonRole", [{"name": "button"}]], - ["CellRole", [{"name": "cell"}, {"name": "gridcell"}]], - ["CheckBoxRole", [{"name": "checkbox"}]], - ["ColumnHeaderRole", [{"name": "columnheader"}]], - ["ComboBoxRole", [{"name": "combobox"}]], - ["ComplementaryRole", [{"name": "complementary"}]], - ["ContentInfoRole", [{"name": "structureinfo"}]], - ["DialogRole", [{"name": "dialog"}]], - ["DirectoryRole", [{"name": "directory"}]], - ["DocumentRole", [{"name": "document"}]], - ["FeedRole", [{"name": "feed"}]], - ["FigureRole", [{"name": "figure"}]], - ["FormRole", [{"name": "form"}]], - ["GridRole", [{"name": "grid"}]], - ["GroupRole", [{"name": "group"}]], - ["HeadingRole", [{"name": "heading"}]], - ["ImageRole", [{"name": "img"}]], - ["LinkRole", [{"name": "link"}]], - ["ListBoxOptionRole", [{"name": "option"}]], - ["ListBoxRole", [{"name": "listbox"}]], - ["ListItemRole", [{"name": "listitem"}]], - ["ListRole", [{"name": "list"}]], - ["LogRole", [{"name": "log"}]], - ["MainRole", [{"name": "main"}]], - ["MarqueeRole", [{"name": "marquee"}]], - ["MathRole", [{"name": "math"}]], - ["MenuBarRole", [{"name": "menubar"}]], - ["MenuItemRole", [{"name": "menuitem"}]], - ["MenuItemCheckBoxRole", [{"name": "menuitemcheckbox"}]], - ["MenuItemRadioRole", [{"name": "menuitemradio"}]], - ["MenuRole", [{"name": "menu"}]], - ["NavigationRole", [{"name": "navigation"}]], - ["NoneRole", [{"name": "none"}]], - ["NoteRole", [{"name": "note"}]], - ["PresentationalRole", [{"name": "presentation"}]], - ["ProgressIndicatorRole", [{"name": "progressbar"}]], - ["RadioButtonRole", [{"name": "radio"}]], - ["RadioGroupRole", [{"name": "radiogroup"}]], - ["RegionRole", [{"name": "region"}]], - ["RowHeaderRole", [{"name": "rowheader"}]], - ["RowRole", [{"name": "row"}]], - ["ScrollBarRole", [{"name": "scrollbar"}]], - ["SearchRole", [{"name": "search"}]], - ["SearchBoxRole", [{"name": "searchbox"}]], - ["SliderRole", [{"name": "slider"}]], - ["SpinButtonRole", [{"name": "spinbutton"}]], - ["SplitterRole", [{"name": "separator"}]], - ["StatusRole", [{"name": "status"}]], - ["SwitchRole", [{"name": "switch"}]], - ["TabGroupRole", [{"name": "tablist"}]], - ["TabRole", [{"name": "tab"}]], - ["TableRole", [{"name": "table"}]], - ["TabListRole", [{"name": "tablist"}]], - ["TabPanelRole", [{"name": "tabpanel"}]], - ["TermRole", [{"name": "term"}]], - ["TextFieldRole", [{"name": "textbox"}]], - ["TimerRole", [{"name": "timer"}]], - ["ToggleButtonRole", [{"attributes": [{"name": "aria-pressed"}]}]], - ["ToolbarRole", [{"name": "toolbar"}]], - ["TreeRole", [{"name": "tree"}]], - ["TreeGridRole", [{"name": "treegrid"}]], - ["TreeItemRole", [{"name": "treeitem"}]], - ["UserInterfaceTooltipRole", [{"name": "tooltip"}]], - ] - ) - ); + it('should have a specific length', function () { + expect([...AXObjectRoleMap].length).toEqual(70); + }); + describe('should support the spread operator', function () { + test.each([...AXObjectRoleMap])(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); - it('should support the for..of pattern', function () { + describe('should support the for..of pattern', function () { const output = []; for (const [key, value] of AXObjectRoleMap) { output.push([key, value]); } - expect(output).toEqual( - expect.arrayContaining( - [ - ["AlertDialogRole", [{"name": "alertdialog"}]], - ["AlertRole", [{"name": "alert"}]], - ["ApplicationRole", [{"name": "application"}]], - ["ArticleRole", [{"name": "article"}]], - ["BannerRole", [{"name": "banner"}]], - ["BusyIndicatorRole", [{"attributes": [{"name": "aria-busy", "value": "true"}]}]], - ["ButtonRole", [{"name": "button"}]], - ["CellRole", [{"name": "cell"}, {"name": "gridcell"}]], - ["CheckBoxRole", [{"name": "checkbox"}]], - ["ColumnHeaderRole", [{"name": "columnheader"}]], - ["ComboBoxRole", [{"name": "combobox"}]], - ["ComplementaryRole", [{"name": "complementary"}]], - ["ContentInfoRole", [{"name": "structureinfo"}]], - ["DialogRole", [{"name": "dialog"}]], - ["DirectoryRole", [{"name": "directory"}]], - ["DocumentRole", [{"name": "document"}]], - ["FeedRole", [{"name": "feed"}]], - ["FigureRole", [{"name": "figure"}]], - ["FormRole", [{"name": "form"}]], - ["GridRole", [{"name": "grid"}]], - ["GroupRole", [{"name": "group"}]], - ["HeadingRole", [{"name": "heading"}]], - ["ImageRole", [{"name": "img"}]], - ["LinkRole", [{"name": "link"}]], - ["ListBoxOptionRole", [{"name": "option"}]], - ["ListBoxRole", [{"name": "listbox"}]], - ["ListItemRole", [{"name": "listitem"}]], - ["ListRole", [{"name": "list"}]], - ["LogRole", [{"name": "log"}]], - ["MainRole", [{"name": "main"}]], - ["MarqueeRole", [{"name": "marquee"}]], - ["MathRole", [{"name": "math"}]], - ["MenuBarRole", [{"name": "menubar"}]], - ["MenuItemRole", [{"name": "menuitem"}]], - ["MenuItemCheckBoxRole", [{"name": "menuitemcheckbox"}]], - ["MenuItemRadioRole", [{"name": "menuitemradio"}]], - ["MenuRole", [{"name": "menu"}]], - ["NavigationRole", [{"name": "navigation"}]], - ["NoneRole", [{"name": "none"}]], - ["NoteRole", [{"name": "note"}]], - ["PresentationalRole", [{"name": "presentation"}]], - ["ProgressIndicatorRole", [{"name": "progressbar"}]], - ["RadioButtonRole", [{"name": "radio"}]], - ["RadioGroupRole", [{"name": "radiogroup"}]], - ["RegionRole", [{"name": "region"}]], - ["RowHeaderRole", [{"name": "rowheader"}]], - ["RowRole", [{"name": "row"}]], - ["ScrollBarRole", [{"name": "scrollbar"}]], - ["SearchRole", [{"name": "search"}]], - ["SearchBoxRole", [{"name": "searchbox"}]], - ["SliderRole", [{"name": "slider"}]], - ["SpinButtonRole", [{"name": "spinbutton"}]], - ["SplitterRole", [{"name": "separator"}]], - ["StatusRole", [{"name": "status"}]], - ["SwitchRole", [{"name": "switch"}]], - ["TabGroupRole", [{"name": "tablist"}]], - ["TabRole", [{"name": "tab"}]], - ["TableRole", [{"name": "table"}]], - ["TabListRole", [{"name": "tablist"}]], - ["TabPanelRole", [{"name": "tabpanel"}]], - ["TermRole", [{"name": "term"}]], - ["TextFieldRole", [{"name": "textbox"}]], - ["TimerRole", [{"name": "timer"}]], - ["ToggleButtonRole", [{"attributes": [{"name": "aria-pressed"}]}]], - ["ToolbarRole", [{"name": "toolbar"}]], - ["TreeRole", [{"name": "tree"}]], - ["TreeGridRole", [{"name": "treegrid"}]], - ["TreeItemRole", [{"name": "treeitem"}]], - ["UserInterfaceTooltipRole", [{"name": "tooltip"}]], - ] - ) - ); + test.each(output)(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); }); describe('content', function () { - it('entries(), iteration', function () { - expect(AXObjectRoleMap.entries()).toEqual( - expect.arrayContaining( - [ - ["AlertDialogRole", [{"name": "alertdialog"}]], - ["AlertRole", [{"name": "alert"}]], - ["ApplicationRole", [{"name": "application"}]], - ["ArticleRole", [{"name": "article"}]], - ["BannerRole", [{"name": "banner"}]], - ["BusyIndicatorRole", [{"attributes": [{"name": "aria-busy", "value": "true"}]}]], - ["ButtonRole", [{"name": "button"}]], - ["CellRole", [{"name": "cell"}, {"name": "gridcell"}]], - ["CheckBoxRole", [{"name": "checkbox"}]], - ["ColumnHeaderRole", [{"name": "columnheader"}]], - ["ComboBoxRole", [{"name": "combobox"}]], - ["ComplementaryRole", [{"name": "complementary"}]], - ["ContentInfoRole", [{"name": "structureinfo"}]], - ["DialogRole", [{"name": "dialog"}]], - ["DirectoryRole", [{"name": "directory"}]], - ["DocumentRole", [{"name": "document"}]], - ["FeedRole", [{"name": "feed"}]], - ["FigureRole", [{"name": "figure"}]], - ["FormRole", [{"name": "form"}]], - ["GridRole", [{"name": "grid"}]], - ["GroupRole", [{"name": "group"}]], - ["HeadingRole", [{"name": "heading"}]], - ["ImageRole", [{"name": "img"}]], - ["LinkRole", [{"name": "link"}]], - ["ListBoxOptionRole", [{"name": "option"}]], - ["ListBoxRole", [{"name": "listbox"}]], - ["ListItemRole", [{"name": "listitem"}]], - ["ListRole", [{"name": "list"}]], - ["LogRole", [{"name": "log"}]], - ["MainRole", [{"name": "main"}]], - ["MarqueeRole", [{"name": "marquee"}]], - ["MathRole", [{"name": "math"}]], - ["MenuBarRole", [{"name": "menubar"}]], - ["MenuItemRole", [{"name": "menuitem"}]], - ["MenuItemCheckBoxRole", [{"name": "menuitemcheckbox"}]], - ["MenuItemRadioRole", [{"name": "menuitemradio"}]], - ["MenuRole", [{"name": "menu"}]], - ["NavigationRole", [{"name": "navigation"}]], - ["NoneRole", [{"name": "none"}]], - ["NoteRole", [{"name": "note"}]], - ["PresentationalRole", [{"name": "presentation"}]], - ["ProgressIndicatorRole", [{"name": "progressbar"}]], - ["RadioButtonRole", [{"name": "radio"}]], - ["RadioGroupRole", [{"name": "radiogroup"}]], - ["RegionRole", [{"name": "region"}]], - ["RowHeaderRole", [{"name": "rowheader"}]], - ["RowRole", [{"name": "row"}]], - ["ScrollBarRole", [{"name": "scrollbar"}]], - ["SearchRole", [{"name": "search"}]], - ["SearchBoxRole", [{"name": "searchbox"}]], - ["SliderRole", [{"name": "slider"}]], - ["SpinButtonRole", [{"name": "spinbutton"}]], - ["SplitterRole", [{"name": "separator"}]], - ["StatusRole", [{"name": "status"}]], - ["SwitchRole", [{"name": "switch"}]], - ["TabGroupRole", [{"name": "tablist"}]], - ["TabRole", [{"name": "tab"}]], - ["TableRole", [{"name": "table"}]], - ["TabListRole", [{"name": "tablist"}]], - ["TabPanelRole", [{"name": "tabpanel"}]], - ["TermRole", [{"name": "term"}]], - ["TextFieldRole", [{"name": "textbox"}]], - ["TimerRole", [{"name": "timer"}]], - ["ToggleButtonRole", [{"attributes": [{"name": "aria-pressed"}]}]], - ["ToolbarRole", [{"name": "toolbar"}]], - ["TreeRole", [{"name": "tree"}]], - ["TreeGridRole", [{"name": "treegrid"}]], - ["TreeItemRole", [{"name": "treeitem"}]], - ["UserInterfaceTooltipRole", [{"name": "tooltip"}]], - ] - ) - ); - expect([...AXObjectRoleMap.entries()]).toEqual( - expect.arrayContaining( - [ - ["AlertDialogRole", [{"name": "alertdialog"}]], - ["AlertRole", [{"name": "alert"}]], - ["ApplicationRole", [{"name": "application"}]], - ["ArticleRole", [{"name": "article"}]], - ["BannerRole", [{"name": "banner"}]], - ["BusyIndicatorRole", [{"attributes": [{"name": "aria-busy", "value": "true"}]}]], - ["ButtonRole", [{"name": "button"}]], - ["CellRole", [{"name": "cell"}, {"name": "gridcell"}]], - ["CheckBoxRole", [{"name": "checkbox"}]], - ["ColumnHeaderRole", [{"name": "columnheader"}]], - ["ComboBoxRole", [{"name": "combobox"}]], - ["ComplementaryRole", [{"name": "complementary"}]], - ["ContentInfoRole", [{"name": "structureinfo"}]], - ["DialogRole", [{"name": "dialog"}]], - ["DirectoryRole", [{"name": "directory"}]], - ["DocumentRole", [{"name": "document"}]], - ["FeedRole", [{"name": "feed"}]], - ["FigureRole", [{"name": "figure"}]], - ["FormRole", [{"name": "form"}]], - ["GridRole", [{"name": "grid"}]], - ["GroupRole", [{"name": "group"}]], - ["HeadingRole", [{"name": "heading"}]], - ["ImageRole", [{"name": "img"}]], - ["LinkRole", [{"name": "link"}]], - ["ListBoxOptionRole", [{"name": "option"}]], - ["ListBoxRole", [{"name": "listbox"}]], - ["ListItemRole", [{"name": "listitem"}]], - ["ListRole", [{"name": "list"}]], - ["LogRole", [{"name": "log"}]], - ["MainRole", [{"name": "main"}]], - ["MarqueeRole", [{"name": "marquee"}]], - ["MathRole", [{"name": "math"}]], - ["MenuBarRole", [{"name": "menubar"}]], - ["MenuItemRole", [{"name": "menuitem"}]], - ["MenuItemCheckBoxRole", [{"name": "menuitemcheckbox"}]], - ["MenuItemRadioRole", [{"name": "menuitemradio"}]], - ["MenuRole", [{"name": "menu"}]], - ["NavigationRole", [{"name": "navigation"}]], - ["NoneRole", [{"name": "none"}]], - ["NoteRole", [{"name": "note"}]], - ["PresentationalRole", [{"name": "presentation"}]], - ["ProgressIndicatorRole", [{"name": "progressbar"}]], - ["RadioButtonRole", [{"name": "radio"}]], - ["RadioGroupRole", [{"name": "radiogroup"}]], - ["RegionRole", [{"name": "region"}]], - ["RowHeaderRole", [{"name": "rowheader"}]], - ["RowRole", [{"name": "row"}]], - ["ScrollBarRole", [{"name": "scrollbar"}]], - ["SearchRole", [{"name": "search"}]], - ["SearchBoxRole", [{"name": "searchbox"}]], - ["SliderRole", [{"name": "slider"}]], - ["SpinButtonRole", [{"name": "spinbutton"}]], - ["SplitterRole", [{"name": "separator"}]], - ["StatusRole", [{"name": "status"}]], - ["SwitchRole", [{"name": "switch"}]], - ["TabGroupRole", [{"name": "tablist"}]], - ["TabRole", [{"name": "tab"}]], - ["TableRole", [{"name": "table"}]], - ["TabListRole", [{"name": "tablist"}]], - ["TabPanelRole", [{"name": "tabpanel"}]], - ["TermRole", [{"name": "term"}]], - ["TextFieldRole", [{"name": "textbox"}]], - ["TimerRole", [{"name": "timer"}]], - ["ToggleButtonRole", [{"attributes": [{"name": "aria-pressed"}]}]], - ["ToolbarRole", [{"name": "toolbar"}]], - ["TreeRole", [{"name": "tree"}]], - ["TreeGridRole", [{"name": "treegrid"}]], - ["TreeItemRole", [{"name": "treeitem"}]], - ["UserInterfaceTooltipRole", [{"name": "tooltip"}]], - ] - ) - ); + describe('entries(), iteration', function () { + test.each([...AXObjectRoleMap.entries()])(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); + test.each([...AXObjectRoleMap.entries()])(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); - it('forEach()', function () { + describe('forEach()', function () { const output = []; let context; AXObjectRoleMap.forEach((value, key, map) => { @@ -329,156 +124,16 @@ describe('AXObjectRoleMap', function () { context = map; } }); - expect(output).toEqual( - expect.arrayContaining( - [ - ["AlertDialogRole", [{"name": "alertdialog"}]], - ["AlertRole", [{"name": "alert"}]], - ["ApplicationRole", [{"name": "application"}]], - ["ArticleRole", [{"name": "article"}]], - ["BannerRole", [{"name": "banner"}]], - ["BusyIndicatorRole", [{"attributes": [{"name": "aria-busy", "value": "true"}]}]], - ["ButtonRole", [{"name": "button"}]], - ["CellRole", [{"name": "cell"}, {"name": "gridcell"}]], - ["CheckBoxRole", [{"name": "checkbox"}]], - ["ColumnHeaderRole", [{"name": "columnheader"}]], - ["ComboBoxRole", [{"name": "combobox"}]], - ["ComplementaryRole", [{"name": "complementary"}]], - ["ContentInfoRole", [{"name": "structureinfo"}]], - ["DialogRole", [{"name": "dialog"}]], - ["DirectoryRole", [{"name": "directory"}]], - ["DocumentRole", [{"name": "document"}]], - ["FeedRole", [{"name": "feed"}]], - ["FigureRole", [{"name": "figure"}]], - ["FormRole", [{"name": "form"}]], - ["GridRole", [{"name": "grid"}]], - ["GroupRole", [{"name": "group"}]], - ["HeadingRole", [{"name": "heading"}]], - ["ImageRole", [{"name": "img"}]], - ["LinkRole", [{"name": "link"}]], - ["ListBoxOptionRole", [{"name": "option"}]], - ["ListBoxRole", [{"name": "listbox"}]], - ["ListItemRole", [{"name": "listitem"}]], - ["ListRole", [{"name": "list"}]], - ["LogRole", [{"name": "log"}]], - ["MainRole", [{"name": "main"}]], - ["MarqueeRole", [{"name": "marquee"}]], - ["MathRole", [{"name": "math"}]], - ["MenuBarRole", [{"name": "menubar"}]], - ["MenuItemRole", [{"name": "menuitem"}]], - ["MenuItemCheckBoxRole", [{"name": "menuitemcheckbox"}]], - ["MenuItemRadioRole", [{"name": "menuitemradio"}]], - ["MenuRole", [{"name": "menu"}]], - ["NavigationRole", [{"name": "navigation"}]], - ["NoneRole", [{"name": "none"}]], - ["NoteRole", [{"name": "note"}]], - ["PresentationalRole", [{"name": "presentation"}]], - ["ProgressIndicatorRole", [{"name": "progressbar"}]], - ["RadioButtonRole", [{"name": "radio"}]], - ["RadioGroupRole", [{"name": "radiogroup"}]], - ["RegionRole", [{"name": "region"}]], - ["RowHeaderRole", [{"name": "rowheader"}]], - ["RowRole", [{"name": "row"}]], - ["ScrollBarRole", [{"name": "scrollbar"}]], - ["SearchRole", [{"name": "search"}]], - ["SearchBoxRole", [{"name": "searchbox"}]], - ["SliderRole", [{"name": "slider"}]], - ["SpinButtonRole", [{"name": "spinbutton"}]], - ["SplitterRole", [{"name": "separator"}]], - ["StatusRole", [{"name": "status"}]], - ["SwitchRole", [{"name": "switch"}]], - ["TabGroupRole", [{"name": "tablist"}]], - ["TabRole", [{"name": "tab"}]], - ["TableRole", [{"name": "table"}]], - ["TabListRole", [{"name": "tablist"}]], - ["TabPanelRole", [{"name": "tabpanel"}]], - ["TermRole", [{"name": "term"}]], - ["TextFieldRole", [{"name": "textbox"}]], - ["TimerRole", [{"name": "timer"}]], - ["ToggleButtonRole", [{"attributes": [{"name": "aria-pressed"}]}]], - ["ToolbarRole", [{"name": "toolbar"}]], - ["TreeRole", [{"name": "tree"}]], - ["TreeGridRole", [{"name": "treegrid"}]], - ["TreeItemRole", [{"name": "treeitem"}]], - ["UserInterfaceTooltipRole", [{"name": "tooltip"}]], - ] - ) - ); - expect(context).toEqual( - expect.arrayContaining( - [ - ["AlertDialogRole", [{"name": "alertdialog"}]], - ["AlertRole", [{"name": "alert"}]], - ["ApplicationRole", [{"name": "application"}]], - ["ArticleRole", [{"name": "article"}]], - ["BannerRole", [{"name": "banner"}]], - ["BusyIndicatorRole", [{"attributes": [{"name": "aria-busy", "value": "true"}]}]], - ["ButtonRole", [{"name": "button"}]], - ["CellRole", [{"name": "cell"}, {"name": "gridcell"}]], - ["CheckBoxRole", [{"name": "checkbox"}]], - ["ColumnHeaderRole", [{"name": "columnheader"}]], - ["ComboBoxRole", [{"name": "combobox"}]], - ["ComplementaryRole", [{"name": "complementary"}]], - ["ContentInfoRole", [{"name": "structureinfo"}]], - ["DialogRole", [{"name": "dialog"}]], - ["DirectoryRole", [{"name": "directory"}]], - ["DocumentRole", [{"name": "document"}]], - ["FeedRole", [{"name": "feed"}]], - ["FigureRole", [{"name": "figure"}]], - ["FormRole", [{"name": "form"}]], - ["GridRole", [{"name": "grid"}]], - ["GroupRole", [{"name": "group"}]], - ["HeadingRole", [{"name": "heading"}]], - ["ImageRole", [{"name": "img"}]], - ["LinkRole", [{"name": "link"}]], - ["ListBoxOptionRole", [{"name": "option"}]], - ["ListBoxRole", [{"name": "listbox"}]], - ["ListItemRole", [{"name": "listitem"}]], - ["ListRole", [{"name": "list"}]], - ["LogRole", [{"name": "log"}]], - ["MainRole", [{"name": "main"}]], - ["MarqueeRole", [{"name": "marquee"}]], - ["MathRole", [{"name": "math"}]], - ["MenuBarRole", [{"name": "menubar"}]], - ["MenuItemRole", [{"name": "menuitem"}]], - ["MenuItemCheckBoxRole", [{"name": "menuitemcheckbox"}]], - ["MenuItemRadioRole", [{"name": "menuitemradio"}]], - ["MenuRole", [{"name": "menu"}]], - ["NavigationRole", [{"name": "navigation"}]], - ["NoneRole", [{"name": "none"}]], - ["NoteRole", [{"name": "note"}]], - ["PresentationalRole", [{"name": "presentation"}]], - ["ProgressIndicatorRole", [{"name": "progressbar"}]], - ["RadioButtonRole", [{"name": "radio"}]], - ["RadioGroupRole", [{"name": "radiogroup"}]], - ["RegionRole", [{"name": "region"}]], - ["RowHeaderRole", [{"name": "rowheader"}]], - ["RowRole", [{"name": "row"}]], - ["ScrollBarRole", [{"name": "scrollbar"}]], - ["SearchRole", [{"name": "search"}]], - ["SearchBoxRole", [{"name": "searchbox"}]], - ["SliderRole", [{"name": "slider"}]], - ["SpinButtonRole", [{"name": "spinbutton"}]], - ["SplitterRole", [{"name": "separator"}]], - ["StatusRole", [{"name": "status"}]], - ["SwitchRole", [{"name": "switch"}]], - ["TabGroupRole", [{"name": "tablist"}]], - ["TabRole", [{"name": "tab"}]], - ["TableRole", [{"name": "table"}]], - ["TabListRole", [{"name": "tablist"}]], - ["TabPanelRole", [{"name": "tabpanel"}]], - ["TermRole", [{"name": "term"}]], - ["TextFieldRole", [{"name": "textbox"}]], - ["TimerRole", [{"name": "timer"}]], - ["ToggleButtonRole", [{"attributes": [{"name": "aria-pressed"}]}]], - ["ToolbarRole", [{"name": "toolbar"}]], - ["TreeRole", [{"name": "tree"}]], - ["TreeGridRole", [{"name": "treegrid"}]], - ["TreeItemRole", [{"name": "treeitem"}]], - ["UserInterfaceTooltipRole", [{"name": "tooltip"}]], - ] - ) - ); + test.each(output)(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); + test.each(context)(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); it('get()', function () { expect(AXObjectRoleMap.get("AlertDialogRole")).toEqual([{"name": "alertdialog"}]); @@ -542,6 +197,7 @@ describe('AXObjectRoleMap', function () { expect(AXObjectRoleMap.get("TabListRole")).toEqual([{"name": "tablist"}]); expect(AXObjectRoleMap.get("TabPanelRole")).toEqual([{"name": "tabpanel"}]); expect(AXObjectRoleMap.get("TermRole")).toEqual([{"name": "term"}]); + expect(AXObjectRoleMap.get("TextAreaRole")).toEqual([{"attributes": [{"name": "aria-multiline", "value": "true"}], "name": "textbox"}]); expect(AXObjectRoleMap.get("TextFieldRole")).toEqual([{"name": "textbox"}]); expect(AXObjectRoleMap.get("TimerRole")).toEqual([{"name": "timer"}]); expect(AXObjectRoleMap.get("ToggleButtonRole")).toEqual([{"attributes": [{"name": "aria-pressed"}]}]); @@ -555,309 +211,31 @@ describe('AXObjectRoleMap', function () { expect(AXObjectRoleMap.has('DialogRole')).toEqual(true); expect(AXObjectRoleMap.has('DoveRole')).toEqual(false); }); - it('keys(), iteration', function () { - expect(AXObjectRoleMap.keys()).toEqual( - expect.arrayContaining( - [ - "AlertDialogRole", - "AlertRole", - "ApplicationRole", - "ArticleRole", - "BannerRole", - "BusyIndicatorRole", - "ButtonRole", - "CellRole", - "CheckBoxRole", - "ColumnHeaderRole", - "ComboBoxRole", - "ComplementaryRole", - "ContentInfoRole", - "DialogRole", - "DirectoryRole", - "DocumentRole", - "FeedRole", - "FigureRole", - "FormRole", - "GridRole", - "GroupRole", - "HeadingRole", - "ImageRole", - "LinkRole", - "ListBoxOptionRole", - "ListBoxRole", - "ListItemRole", - "ListRole", - "LogRole", - "MainRole", - "MarqueeRole", - "MathRole", - "MenuBarRole", - "MenuItemRole", - "MenuItemCheckBoxRole", - "MenuItemRadioRole", - "MenuRole", - "NavigationRole", - "NoneRole", - "NoteRole", - "PresentationalRole", - "ProgressIndicatorRole", - "RadioButtonRole", - "RadioGroupRole", - "RegionRole", - "RowHeaderRole", - "RowRole", - "ScrollBarRole", - "SearchRole", - "SearchBoxRole", - "SliderRole", - "SpinButtonRole", - "SplitterRole", - "StatusRole", - "SwitchRole", - "TabGroupRole", - "TabRole", - "TableRole", - "TabListRole", - "TabPanelRole", - "TermRole", - "TextFieldRole", - "TimerRole", - "ToggleButtonRole", - "ToolbarRole", - "TreeRole", - "TreeGridRole", - "TreeItemRole", - "UserInterfaceTooltipRole", - ] - ) - ); - expect([...AXObjectRoleMap.keys()]).toEqual( - expect.arrayContaining( - [ - "AlertDialogRole", - "AlertRole", - "ApplicationRole", - "ArticleRole", - "BannerRole", - "BusyIndicatorRole", - "ButtonRole", - "CellRole", - "CheckBoxRole", - "ColumnHeaderRole", - "ComboBoxRole", - "ComplementaryRole", - "ContentInfoRole", - "DialogRole", - "DirectoryRole", - "DocumentRole", - "FeedRole", - "FigureRole", - "FormRole", - "GridRole", - "GroupRole", - "HeadingRole", - "ImageRole", - "LinkRole", - "ListBoxOptionRole", - "ListBoxRole", - "ListItemRole", - "ListRole", - "LogRole", - "MainRole", - "MarqueeRole", - "MathRole", - "MenuBarRole", - "MenuItemRole", - "MenuItemCheckBoxRole", - "MenuItemRadioRole", - "MenuRole", - "NavigationRole", - "NoneRole", - "NoteRole", - "PresentationalRole", - "ProgressIndicatorRole", - "RadioButtonRole", - "RadioGroupRole", - "RegionRole", - "RowHeaderRole", - "RowRole", - "ScrollBarRole", - "SearchRole", - "SearchBoxRole", - "SliderRole", - "SpinButtonRole", - "SplitterRole", - "StatusRole", - "SwitchRole", - "TabGroupRole", - "TabRole", - "TableRole", - "TabListRole", - "TabPanelRole", - "TermRole", - "TextFieldRole", - "TimerRole", - "ToggleButtonRole", - "ToolbarRole", - "TreeRole", - "TreeGridRole", - "TreeItemRole", - "UserInterfaceTooltipRole", - ] - ) - ); + describe('keys(), iteration', function () { + const entriesKeys = entriesList.map(entry => entry[0]); + test.each(AXObjectRoleMap.keys())('Testing key: %o', (key) => { + expect(entriesKeys).toEqual( + expect.arrayContaining([key]), + ); + }); + test.each([...AXObjectRoleMap.keys()])('Testing key: %o', (key) => { + expect(entriesKeys).toEqual( + expect.arrayContaining([key]), + ); + }); }); - it('values(), iteration', function () { - expect(AXObjectRoleMap.values()).toEqual( - expect.arrayContaining( - [ - [{"name": "alertdialog"}], - [{"name": "alert"}], - [{"name": "application"}], - [{"name": "article"}], - [{"name": "banner"}], - [{"attributes": [{"name": "aria-busy", "value": "true"}]}], - [{"name": "button"}], - [{"name": "cell"}, {"name": "gridcell"}], - [{"name": "checkbox"}], - [{"name": "columnheader"}], - [{"name": "combobox"}], - [{"name": "complementary"}], - [{"name": "structureinfo"}], - [{"name": "dialog"}], - [{"name": "directory"}], - [{"name": "document"}], - [{"name": "feed"}], - [{"name": "figure"}], - [{"name": "form"}], - [{"name": "grid"}], - [{"name": "group"}], - [{"name": "heading"}], - [{"name": "img"}], - [{"name": "link"}], - [{"name": "option"}], - [{"name": "listbox"}], - [{"name": "listitem"}], - [{"name": "list"}], - [{"name": "log"}], - [{"name": "main"}], - [{"name": "marquee"}], - [{"name": "math"}], - [{"name": "menubar"}], - [{"name": "menuitem"}], - [{"name": "menuitemcheckbox"}], - [{"name": "menuitemradio"}], - [{"name": "menu"}], - [{"name": "navigation"}], - [{"name": "none"}], - [{"name": "note"}], - [{"name": "presentation"}], - [{"name": "progressbar"}], - [{"name": "radio"}], - [{"name": "radiogroup"}], - [{"name": "region"}], - [{"name": "rowheader"}], - [{"name": "row"}], - [{"name": "scrollbar"}], - [{"name": "search"}], - [{"name": "searchbox"}], - [{"name": "slider"}], - [{"name": "spinbutton"}], - [{"name": "separator"}], - [{"name": "status"}], - [{"name": "switch"}], - [{"name": "tablist"}], - [{"name": "tab"}], - [{"name": "table"}], - [{"name": "tablist"}], - [{"name": "tabpanel"}], - [{"name": "term"}], - [{"name": "textbox"}], - [{"name": "timer"}], - [{"attributes": [{"name": "aria-pressed"}]}], - [{"name": "toolbar"}], - [{"name": "tree"}], - [{"name": "treegrid"}], - [{"name": "treeitem"}], - [{"name": "tooltip"}], - ] - ) - ); - expect([...AXObjectRoleMap.values()]).toEqual( - expect.arrayContaining( - [ - [{"name": "alertdialog"}], - [{"name": "alert"}], - [{"name": "application"}], - [{"name": "article"}], - [{"name": "banner"}], - [{"attributes": [{"name": "aria-busy", "value": "true"}]}], - [{"name": "button"}], - [{"name": "cell"}, {"name": "gridcell"}], - [{"name": "checkbox"}], - [{"name": "columnheader"}], - [{"name": "combobox"}], - [{"name": "complementary"}], - [{"name": "structureinfo"}], - [{"name": "dialog"}], - [{"name": "directory"}], - [{"name": "document"}], - [{"name": "feed"}], - [{"name": "figure"}], - [{"name": "form"}], - [{"name": "grid"}], - [{"name": "group"}], - [{"name": "heading"}], - [{"name": "img"}], - [{"name": "link"}], - [{"name": "option"}], - [{"name": "listbox"}], - [{"name": "listitem"}], - [{"name": "list"}], - [{"name": "log"}], - [{"name": "main"}], - [{"name": "marquee"}], - [{"name": "math"}], - [{"name": "menubar"}], - [{"name": "menuitem"}], - [{"name": "menuitemcheckbox"}], - [{"name": "menuitemradio"}], - [{"name": "menu"}], - [{"name": "navigation"}], - [{"name": "none"}], - [{"name": "note"}], - [{"name": "presentation"}], - [{"name": "progressbar"}], - [{"name": "radio"}], - [{"name": "radiogroup"}], - [{"name": "region"}], - [{"name": "rowheader"}], - [{"name": "row"}], - [{"name": "scrollbar"}], - [{"name": "search"}], - [{"name": "searchbox"}], - [{"name": "slider"}], - [{"name": "spinbutton"}], - [{"name": "separator"}], - [{"name": "status"}], - [{"name": "switch"}], - [{"name": "tablist"}], - [{"name": "tab"}], - [{"name": "table"}], - [{"name": "tablist"}], - [{"name": "tabpanel"}], - [{"name": "term"}], - [{"name": "textbox"}], - [{"name": "timer"}], - [{"attributes": [{"name": "aria-pressed"}]}], - [{"name": "toolbar"}], - [{"name": "tree"}], - [{"name": "treegrid"}], - [{"name": "treeitem"}], - [{"name": "tooltip"}], - ] - ) - ); + describe('values(), iteration', function () { + const entriesValues = entriesList.map(entry => entry[1]); + test.each(AXObjectRoleMap.values().map(value => [value]))('Testing value: %o', (value) => { + expect(entriesValues).toEqual( + expect.arrayContaining([value]), + ); + }); + test.each([...AXObjectRoleMap.values()].map(value => [value]))('Testing value: %o', (value) => { + expect(entriesValues).toEqual( + expect.arrayContaining([value]), + ); + }); }); }); }); diff --git a/__tests__/src/AXObjectsMap-test.js b/__tests__/src/AXObjectsMap-test.js index 1f8ab0c..ac46088 100644 --- a/__tests__/src/AXObjectsMap-test.js +++ b/__tests__/src/AXObjectsMap-test.js @@ -2,541 +2,174 @@ import expect from 'expect'; import AXObjectsMap from '../../src/AXObjectsMap'; +const entriesList = [ + ["AbbrRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'abbr',},},],type: 'structure',})], + ["AlertDialogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alertdialog',},},],type: 'window',})], + ["AlertRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alert',},},],type: 'structure',})], + ["AnnotationRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["ApplicationRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'application',},},],type: 'window',})], + ["ArticleRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'article',},},{module: 'HTML',concept: {name: 'article',},},],type: 'structure',})], + ["AudioRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'audio',},},],type: 'widget',})], + ["BannerRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'banner',},},],type: 'structure',})], + ["BlockquoteRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'blockquote',},},],type: 'structure',})], + ["BusyIndicatorRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-busy',value: 'true',},],},},],type: 'widget',})], + ["ButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'button',},},{module: 'HTML',concept: {name: 'button',},},],type: 'widget',})], + ["CanvasRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'canvas',},},],type: 'widget',})], + ["CaptionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'caption',},},],type: 'structure',})], + ["CellRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'cell',},},{module: 'ARIA',concept: {name: 'gridcell',},},{module: 'HTML',concept: {name: 'td',},},],type: 'widget',})], + ["CheckBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'checkbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',})], + ["ColorWellRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'color',},],},},],type: 'widget',})], + ["ColumnHeaderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'columnheader',},},{module: 'HTML',concept: {name: 'th',},},],type: 'widget',})], + ["ColumnRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["ComboBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'combobox',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',})], + ["ComplementaryRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'complementary',},},],type: 'structure',})], + ["ContentInfoRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'structureinfo',},},],type: 'structure',})], + ["DateRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'date',},],},},],type: 'widget',})], + ["DateTimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'datetime',},],},},],type: 'widget',})], + ["DefinitionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dfn',},},],type: 'structure',})], + ["DescriptionListDetailRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dd',},},],type: 'structure',})], + ["DescriptionListRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dl',},},],type: 'structure',})], + ["DescriptionListTermRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dt',},},],type: 'structure',})], + ["DetailsRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'details',},},],type: 'structure',})], + ["DialogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'dialog',},},{module: 'HTML',concept: {name: 'dialog',},},],type: 'window',})], + ["DirectoryRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'directory',},},{module: 'HTML',concept: {name: 'dir',},},],type: 'structure',})], + ["DisclosureTriangleRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {attributes: [{name: 'open',value: 'open',},],constraints: ['scoped to a details element',],name: 'summary',},},{module: 'HTML',concept: {attributes: [{name: 'aria-expanded',},],constraints: ['scoped to a details element',],name: 'summary',},},],type: 'widget',})], + ["DivRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'div',},},],type: 'generic',})], + ["DocumentRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'document',},},],type: 'structure',})], + ["EmbeddedObjectRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'embed',},},],type: 'widget',})], + ["FeedRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'feed',},},],type: 'structure',})], + ["FigcaptionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'figcaption',},},],type: 'structure',})], + ["FigureRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'figure',},},{module: 'HTML',concept: {name: 'figure',},},],type: 'structure',})], + ["FooterRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'footer',},},],type: 'structure',})], + ["FormRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'form',},},{module: 'HTML',concept: {name: 'form',},},],type: 'structure',})], + ["GridRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'grid',},},],type: 'widget',})], + ["GroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'group',},},],type: 'structure',})], + ["HeadingRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'heading',},},{module: 'HTML',concept: {name: 'h1',},},{module: 'HTML',concept: {name: 'h2',},},{module: 'HTML',concept: {name: 'h3',},},{module: 'HTML',concept: {name: 'h4',},},{module: 'HTML',concept: {name: 'h5',},},{module: 'HTML',concept: {name: 'h6',},},],type: 'structure',})], + ["IframePresentationalRole", expect.objectContaining({relatedConcepts: [],type: 'window',})], + ["IframeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'iframe',},},],type: 'window',})], + ["IgnoredRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["ImageMapLinkRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], + ["ImageMapRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'img',attributes: [{name: 'usemap',},],},},],type: 'structure',})], + ["ImageRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'img',},},{module: 'HTML',concept: {name: 'img',},},],type: 'structure',})], + ["InlineTextBoxRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',},},],type: 'widget',})], + ["InputTimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'time',},],},},],type: 'widget',})], + ["LabelRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'label',},},],type: 'structure',})], + ["LegendRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'legend',},},],type: 'structure',})], + ["LineBreakRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'br',},},],type: 'structure',})], + ["LinkRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'link',},},{module: 'HTML',concept: {name: 'a',attributes: [{name: 'href',},],},},],type: 'widget',})], + ["ListBoxOptionRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'option',},},{module: 'HTML',concept: {name: 'option',},},],type: 'widget',})], + ["ListBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listbox',},},{module: 'HTML',concept: {name: 'datalist',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',})], + ["ListItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listitem',},},{module: 'HTML',concept: {name: 'li',},},],type: 'structure',})], + ["ListMarkerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["ListRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'list',},},{module: 'HTML',concept: {name: 'ul',},},{module: 'HTML',concept: {name: 'ol',},},],type: 'structure',})], + ["LogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'log',},},],type: 'structure',})], + ["MainRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'main',},},{module: 'HTML',concept: {name: 'main',},},],type: 'structure',})], + ["MarkRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'mark',},},],type: 'structure',})], + ["MarqueeRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'marquee',},},{module: 'HTML',concept: {name: 'marquee',},},],type: 'structure',})], + ["MathRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'math',},},],type: 'structure',})], + ["MenuBarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menubar',},},],type: 'structure',})], + ["MenuButtonRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], + ["MenuItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitem',},},{module: 'HTML',concept: {name: 'menuitem',},},],type: 'widget',})], + ["MenuItemCheckBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemcheckbox',},},],type: 'widget',})], + ["MenuItemRadioRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemradio',},},],type: 'widget',})], + ["MenuListOptionRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], + ["MenuListPopupRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], + ["MenuRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menu',},},{module: 'HTML',concept: {name: 'menu',},},],type: 'structure',})], + ["MeterRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'meter',},},],type: 'structure',})], + ["NavigationRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'navigation',},},{module: 'HTML',concept: {name: 'nav',},},],type: 'structure',})], + ["NoneRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'none',},},],type: 'structure',})], + ["NoteRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'note',},},],type: 'structure',})], + ["OutlineRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["ParagraphRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'p',},},],type: 'structure',})], + ["PopUpButtonRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], + ["PreRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'pre',},},],type: 'structure',})], + ["PresentationalRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'presentation',},},],type: 'structure',})], + ["ProgressIndicatorRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'progressbar',},},{module: 'HTML',concept: {name: 'progress',},},],type: 'structure',})], + ["RadioButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radio',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'radio',},],},},],type: 'widget',})], + ["RadioGroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radiogroup',},},],type: 'structure',})], + ["RegionRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'region',},},],type: 'structure',})], + ["RootWebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["RowHeaderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'rowheader',},},{module: 'HTML',concept: {name: 'th',attributes: [{name: 'scope',value: 'row',},],},},],type: 'widget',})], + ["RowRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'row',},},{module: 'HTML',concept: {name: 'tr',},},],type: 'structure',})], + ["RubyRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'ruby',},},],type: 'structure',})], + ["RulerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["ScrollAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["ScrollBarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'scrollbar',},},],type: 'widget',})], + ["SeamlessWebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["SearchRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'search',},},],type: 'structure',})], + ["SearchBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'searchbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'search',},],},},],type: 'widget',})], + ["SliderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'slider',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'range',},],},},],type: 'widget',})], + ["SliderThumbRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["SpinButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'spinbutton',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'number',},],},},],type: 'widget',})], + ["SpinButtonPartRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["SplitterRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'separator',},},],type: 'widget',})], + ["StaticTextRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["StatusRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'status',},},],type: 'structure',})], + ["SVGRootRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["SwitchRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'switch',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',})], + ["TabGroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',})], + ["TabRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tab',},},],type: 'widget',})], + ["TableHeaderContainerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["TableRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'table',},},{module: 'HTML',concept: {name: 'table',},},],type: 'structure',})], + ["TabListRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',})], + ["TabPanelRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tabpanel',},},],type: 'structure',})], + ["TermRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'term',},},],type: 'structure',})], + ["TextAreaRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-multiline',value: 'true',},],name: 'textbox',},},{module: 'HTML',concept: {name: 'textarea',},},],type: 'widget',})], + ["TextFieldRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'textbox',},},{module: 'HTML',concept: {name: 'input',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'text',},],},},],type: 'widget',})], + ["TimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'time',},},],type: 'structure',})], + ["TimerRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'timer',},},],type: 'structure',})], + ["ToggleButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-pressed',},],},},],type: 'widget',})], + ["ToolbarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'toolbar',},},],type: 'structure',})], + ["TreeRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tree',},},],type: 'widget',})], + ["TreeGridRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treegrid',},},],type: 'widget',})], + ["TreeItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treeitem',},},],type: 'widget',})], + ["UserInterfaceTooltipRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tooltip',},},],type: 'structure',})], + ["VideoRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'video',},},],type: 'widget',})], + ["WebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], + ["WindowRole", expect.objectContaining({relatedConcepts: [],type: 'window',})], +]; + describe('AXObjectsMap', function () { describe('iteration', function () { it('should have an iterator defined', function () { expect(AXObjectsMap[Symbol.iterator]).not.toBeUndefined(); }); - it('should support the spread operator', function () { - expect([...AXObjectsMap].length).toEqual(123); - expect([...AXObjectsMap]).toEqual( - expect.arrayContaining( - [ - ["AbbrRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'abbr',},},],type: 'structure',})], - ["AlertDialogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alertdialog',},},],type: 'window',})], - ["AlertRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alert',},},],type: 'structure',})], - ["AnnotationRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ApplicationRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'application',},},],type: 'window',})], - ["ArticleRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'article',},},{module: 'HTML',concept: {name: 'article',},},],type: 'structure',})], - ["AudioRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'audio',},},],type: 'widget',})], - ["BannerRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'banner',},},],type: 'structure',})], - ["BlockquoteRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'blockquote',},},],type: 'structure',})], - ["BusyIndicatorRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-busy',value: 'true',},],},},],type: 'widget',})], - ["ButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'button',},},{module: 'HTML',concept: {name: 'button',},},],type: 'widget',})], - ["CanvasRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'canvas',},},],type: 'widget',})], - ["CaptionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'caption',},},],type: 'structure',})], - ["CellRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'cell',},},{module: 'ARIA',concept: {name: 'gridcell',},},{module: 'HTML',concept: {name: 'td',},},],type: 'widget',})], - ["CheckBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'checkbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',})], - ["ColorWellRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'color',},],},},],type: 'widget',})], - ["ColumnHeaderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'columnheader',},},{module: 'HTML',concept: {name: 'th',},},],type: 'widget',})], - ["ColumnRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ComboBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'combobox',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',})], - ["ComplementaryRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'complementary',},},],type: 'structure',})], - ["ContentInfoRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'structureinfo',},},],type: 'structure',})], - ["DateRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'date',},],},},],type: 'widget',})], - ["DateTimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'datetime',},],},},],type: 'widget',})], - ["DefinitionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dfn',},},],type: 'structure',})], - ["DescriptionListDetailRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dd',},},],type: 'structure',})], - ["DescriptionListRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dl',},},],type: 'structure',})], - ["DescriptionListTermRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dt',},},],type: 'structure',})], - ["DetailsRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'details',},},],type: 'structure',})], - ["DialogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'dialog',},},{module: 'HTML',concept: {name: 'dialog',},},],type: 'window',})], - ["DirectoryRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'directory',},},{module: 'HTML',concept: {name: 'dir',},},],type: 'structure',})], - ["DisclosureTriangleRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'summary',},},],type: 'widget',})], - ["DivRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'div',},},],type: 'generic',})], - ["DocumentRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'document',},},],type: 'structure',})], - ["EmbeddedObjectRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'embed',},},],type: 'widget',})], - ["FeedRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'feed',},},],type: 'structure',})], - ["FigcaptionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'figcaption',},},],type: 'structure',})], - ["FigureRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'figure',},},{module: 'HTML',concept: {name: 'figure',},},],type: 'structure',})], - ["FooterRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'footer',},},],type: 'structure',})], - ["FormRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'form',},},{module: 'HTML',concept: {name: 'form',},},],type: 'structure',})], - ["GridRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'grid',},},],type: 'widget',})], - ["GroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'group',},},],type: 'structure',})], - ["HeadingRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'heading',},},{module: 'HTML',concept: {name: 'h1',},},{module: 'HTML',concept: {name: 'h2',},},{module: 'HTML',concept: {name: 'h3',},},{module: 'HTML',concept: {name: 'h4',},},{module: 'HTML',concept: {name: 'h5',},},{module: 'HTML',concept: {name: 'h6',},},],type: 'structure',})], - ["IframePresentationalRole", expect.objectContaining({relatedConcepts: [],type: 'window',})], - ["IframeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'iframe',},},],type: 'window',})], - ["IgnoredRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ImageMapLinkRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["ImageMapRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'img',attributes: [{name: 'usemap',},],},},],type: 'structure',})], - ["ImageRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'img',},},{module: 'HTML',concept: {name: 'img',},},],type: 'structure',})], - ["InlineTextBoxRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',},},],type: 'widget',})], - ["InputTimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'time',},],},},],type: 'widget',})], - ["LabelRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'label',},},],type: 'structure',})], - ["LegendRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'legend',},},],type: 'structure',})], - ["LineBreakRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'br',},},],type: 'structure',})], - ["LinkRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'link',},},{module: 'HTML',concept: {name: 'a',attributes: [{name: 'href',},],},},],type: 'widget',})], - ["ListBoxOptionRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'option',},},{module: 'HTML',concept: {name: 'option',},},],type: 'widget',})], - ["ListBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listbox',},},{module: 'HTML',concept: {name: 'datalist',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',})], - ["ListItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listitem',},},{module: 'HTML',concept: {name: 'li',},},],type: 'structure',})], - ["ListMarkerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ListRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'list',},},{module: 'HTML',concept: {name: 'ul',},},{module: 'HTML',concept: {name: 'ol',},},],type: 'structure',})], - ["LogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'log',},},],type: 'structure',})], - ["MainRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'main',},},{module: 'HTML',concept: {name: 'main',},},],type: 'structure',})], - ["MarkRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'mark',},},],type: 'structure',})], - ["MarqueeRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'marquee',},},{module: 'HTML',concept: {name: 'marquee',},},],type: 'structure',})], - ["MathRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'math',},},],type: 'structure',})], - ["MenuBarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menubar',},},],type: 'structure',})], - ["MenuButtonRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitem',},},{module: 'HTML',concept: {name: 'menuitem',},},],type: 'widget',})], - ["MenuItemCheckBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemcheckbox',},},],type: 'widget',})], - ["MenuItemRadioRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemradio',},},],type: 'widget',})], - ["MenuListOptionRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuListPopupRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menu',},},{module: 'HTML',concept: {name: 'menu',},},],type: 'structure',})], - ["MeterRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'meter',},},],type: 'structure',})], - ["NavigationRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'navigation',},},{module: 'HTML',concept: {name: 'nav',},},],type: 'structure',})], - ["NoneRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'none',},},],type: 'structure',})], - ["NoteRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'note',},},],type: 'structure',})], - ["OutlineRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ParagraphRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'p',},},],type: 'structure',})], - ["PopUpButtonRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["PreRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'pre',},},],type: 'structure',})], - ["PresentationalRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'presentation',},},],type: 'structure',})], - ["ProgressIndicatorRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'progressbar',},},{module: 'HTML',concept: {name: 'progress',},},],type: 'structure',})], - ["RadioButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radio',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'radio',},],},},],type: 'widget',})], - ["RadioGroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radiogroup',},},],type: 'structure',})], - ["RegionRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'region',},},],type: 'structure',})], - ["RootWebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["RowHeaderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'rowheader',},},{module: 'HTML',concept: {name: 'th',attributes: [{name: 'scope',value: 'row',},],},},],type: 'widget',})], - ["RowRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'row',},},{module: 'HTML',concept: {name: 'tr',},},],type: 'structure',})], - ["RubyRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'ruby',},},],type: 'structure',})], - ["RulerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ScrollAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ScrollBarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'scrollbar',},},],type: 'widget',})], - ["SeamlessWebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SearchRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'search',},},],type: 'structure',})], - ["SearchBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'searchbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'search',},],},},],type: 'widget',})], - ["SliderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'slider',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'range',},],},},],type: 'widget',})], - ["SliderThumbRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SpinButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'spinbutton',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'number',},],},},],type: 'widget',})], - ["SpinButtonPartRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SplitterRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'separator',},},],type: 'widget',})], - ["StaticTextRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["StatusRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'status',},},],type: 'structure',})], - ["SVGRootRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SwitchRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'switch',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',})], - ["TabGroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',})], - ["TabRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tab',},},],type: 'widget',})], - ["TableHeaderContainerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["TableRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'table',},},{module: 'HTML',concept: {name: 'table',},},],type: 'structure',})], - ["TabListRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',})], - ["TabPanelRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tabpanel',},},],type: 'structure',})], - ["TermRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'term',},},],type: 'structure',})], - ["TextFieldRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'textbox',},},{module: 'HTML',concept: {name: 'input',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'text',},],},},],type: 'widget',})], - ["TimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'time',},},],type: 'structure',})], - ["TimerRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'timer',},},],type: 'structure',})], - ["ToggleButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-pressed',},],},},],type: 'widget',})], - ["ToolbarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'toolbar',},},],type: 'structure',})], - ["TreeRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tree',},},],type: 'widget',})], - ["TreeGridRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treegrid',},},],type: 'widget',})], - ["TreeItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treeitem',},},],type: 'widget',})], - ["UserInterfaceTooltipRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tooltip',},},],type: 'structure',})], - ["VideoRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'video',},},],type: 'widget',})], - ["WebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["WindowRole", expect.objectContaining({relatedConcepts: [],type: 'window',})], - ] - ) - ); + it('should have a specific length', function () { + expect([...AXObjectsMap].length).toEqual(124); + }); + describe('should support the spread operator', function () { + test.each([...AXObjectsMap])(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); - it('should support the for..of pattern', function () { + describe('should support the for..of pattern', function () { const output = []; for (const [key, value] of AXObjectsMap) { output.push([key, value]); } - expect(output).toEqual( - expect.arrayContaining( - [ - ["AbbrRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'abbr',},},],type: 'structure',})], - ["AlertDialogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alertdialog',},},],type: 'window',})], - ["AlertRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alert',},},],type: 'structure',})], - ["AnnotationRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ApplicationRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'application',},},],type: 'window',})], - ["ArticleRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'article',},},{module: 'HTML',concept: {name: 'article',},},],type: 'structure',})], - ["AudioRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'audio',},},],type: 'widget',})], - ["BannerRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'banner',},},],type: 'structure',})], - ["BlockquoteRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'blockquote',},},],type: 'structure',})], - ["BusyIndicatorRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-busy',value: 'true',},],},},],type: 'widget',})], - ["ButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'button',},},{module: 'HTML',concept: {name: 'button',},},],type: 'widget',})], - ["CanvasRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'canvas',},},],type: 'widget',})], - ["CaptionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'caption',},},],type: 'structure',})], - ["CellRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'cell',},},{module: 'ARIA',concept: {name: 'gridcell',},},{module: 'HTML',concept: {name: 'td',},},],type: 'widget',})], - ["CheckBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'checkbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',})], - ["ColorWellRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'color',},],},},],type: 'widget',})], - ["ColumnHeaderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'columnheader',},},{module: 'HTML',concept: {name: 'th',},},],type: 'widget',})], - ["ColumnRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ComboBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'combobox',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',})], - ["ComplementaryRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'complementary',},},],type: 'structure',})], - ["ContentInfoRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'structureinfo',},},],type: 'structure',})], - ["DateRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'date',},],},},],type: 'widget',})], - ["DateTimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'datetime',},],},},],type: 'widget',})], - ["DefinitionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dfn',},},],type: 'structure',})], - ["DescriptionListDetailRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dd',},},],type: 'structure',})], - ["DescriptionListRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dl',},},],type: 'structure',})], - ["DescriptionListTermRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dt',},},],type: 'structure',})], - ["DetailsRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'details',},},],type: 'structure',})], - ["DialogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'dialog',},},{module: 'HTML',concept: {name: 'dialog',},},],type: 'window',})], - ["DirectoryRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'directory',},},{module: 'HTML',concept: {name: 'dir',},},],type: 'structure',})], - ["DisclosureTriangleRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'summary',},},],type: 'widget',})], - ["DivRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'div',},},],type: 'generic',})], - ["DocumentRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'document',},},],type: 'structure',})], - ["EmbeddedObjectRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'embed',},},],type: 'widget',})], - ["FeedRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'feed',},},],type: 'structure',})], - ["FigcaptionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'figcaption',},},],type: 'structure',})], - ["FigureRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'figure',},},{module: 'HTML',concept: {name: 'figure',},},],type: 'structure',})], - ["FooterRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'footer',},},],type: 'structure',})], - ["FormRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'form',},},{module: 'HTML',concept: {name: 'form',},},],type: 'structure',})], - ["GridRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'grid',},},],type: 'widget',})], - ["GroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'group',},},],type: 'structure',})], - ["HeadingRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'heading',},},{module: 'HTML',concept: {name: 'h1',},},{module: 'HTML',concept: {name: 'h2',},},{module: 'HTML',concept: {name: 'h3',},},{module: 'HTML',concept: {name: 'h4',},},{module: 'HTML',concept: {name: 'h5',},},{module: 'HTML',concept: {name: 'h6',},},],type: 'structure',})], - ["IframePresentationalRole", expect.objectContaining({relatedConcepts: [],type: 'window',})], - ["IframeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'iframe',},},],type: 'window',})], - ["IgnoredRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ImageMapLinkRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["ImageMapRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'img',attributes: [{name: 'usemap',},],},},],type: 'structure',})], - ["ImageRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'img',},},{module: 'HTML',concept: {name: 'img',},},],type: 'structure',})], - ["InlineTextBoxRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',},},],type: 'widget',})], - ["InputTimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'time',},],},},],type: 'widget',})], - ["LabelRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'label',},},],type: 'structure',})], - ["LegendRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'legend',},},],type: 'structure',})], - ["LineBreakRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'br',},},],type: 'structure',})], - ["LinkRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'link',},},{module: 'HTML',concept: {name: 'a',attributes: [{name: 'href',},],},},],type: 'widget',})], - ["ListBoxOptionRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'option',},},{module: 'HTML',concept: {name: 'option',},},],type: 'widget',})], - ["ListBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listbox',},},{module: 'HTML',concept: {name: 'datalist',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',})], - ["ListItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listitem',},},{module: 'HTML',concept: {name: 'li',},},],type: 'structure',})], - ["ListMarkerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ListRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'list',},},{module: 'HTML',concept: {name: 'ul',},},{module: 'HTML',concept: {name: 'ol',},},],type: 'structure',})], - ["LogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'log',},},],type: 'structure',})], - ["MainRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'main',},},{module: 'HTML',concept: {name: 'main',},},],type: 'structure',})], - ["MarkRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'mark',},},],type: 'structure',})], - ["MarqueeRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'marquee',},},{module: 'HTML',concept: {name: 'marquee',},},],type: 'structure',})], - ["MathRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'math',},},],type: 'structure',})], - ["MenuBarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menubar',},},],type: 'structure',})], - ["MenuButtonRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitem',},},{module: 'HTML',concept: {name: 'menuitem',},},],type: 'widget',})], - ["MenuItemCheckBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemcheckbox',},},],type: 'widget',})], - ["MenuItemRadioRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemradio',},},],type: 'widget',})], - ["MenuListOptionRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuListPopupRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menu',},},{module: 'HTML',concept: {name: 'menu',},},],type: 'structure',})], - ["MeterRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'meter',},},],type: 'structure',})], - ["NavigationRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'navigation',},},{module: 'HTML',concept: {name: 'nav',},},],type: 'structure',})], - ["NoneRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'none',},},],type: 'structure',})], - ["NoteRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'note',},},],type: 'structure',})], - ["OutlineRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ParagraphRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'p',},},],type: 'structure',})], - ["PopUpButtonRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["PreRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'pre',},},],type: 'structure',})], - ["PresentationalRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'presentation',},},],type: 'structure',})], - ["ProgressIndicatorRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'progressbar',},},{module: 'HTML',concept: {name: 'progress',},},],type: 'structure',})], - ["RadioButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radio',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'radio',},],},},],type: 'widget',})], - ["RadioGroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radiogroup',},},],type: 'structure',})], - ["RegionRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'region',},},],type: 'structure',})], - ["RootWebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["RowHeaderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'rowheader',},},{module: 'HTML',concept: {name: 'th',attributes: [{name: 'scope',value: 'row',},],},},],type: 'widget',})], - ["RowRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'row',},},{module: 'HTML',concept: {name: 'tr',},},],type: 'structure',})], - ["RubyRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'ruby',},},],type: 'structure',})], - ["RulerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ScrollAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ScrollBarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'scrollbar',},},],type: 'widget',})], - ["SeamlessWebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SearchRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'search',},},],type: 'structure',})], - ["SearchBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'searchbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'search',},],},},],type: 'widget',})], - ["SliderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'slider',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'range',},],},},],type: 'widget',})], - ["SliderThumbRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SpinButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'spinbutton',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'number',},],},},],type: 'widget',})], - ["SpinButtonPartRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SplitterRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'separator',},},],type: 'widget',})], - ["StaticTextRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["StatusRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'status',},},],type: 'structure',})], - ["SVGRootRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SwitchRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'switch',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',})], - ["TabGroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',})], - ["TabRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tab',},},],type: 'widget',})], - ["TableHeaderContainerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["TableRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'table',},},{module: 'HTML',concept: {name: 'table',},},],type: 'structure',})], - ["TabListRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',})], - ["TabPanelRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tabpanel',},},],type: 'structure',})], - ["TermRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'term',},},],type: 'structure',})], - ["TextFieldRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'textbox',},},{module: 'HTML',concept: {name: 'input',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'text',},],},},],type: 'widget',})], - ["TimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'time',},},],type: 'structure',})], - ["TimerRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'timer',},},],type: 'structure',})], - ["ToggleButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-pressed',},],},},],type: 'widget',})], - ["ToolbarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'toolbar',},},],type: 'structure',})], - ["TreeRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tree',},},],type: 'widget',})], - ["TreeGridRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treegrid',},},],type: 'widget',})], - ["TreeItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treeitem',},},],type: 'widget',})], - ["UserInterfaceTooltipRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tooltip',},},],type: 'structure',})], - ["VideoRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'video',},},],type: 'widget',})], - ["WebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["WindowRole", expect.objectContaining({relatedConcepts: [],type: 'window',})], - ] - ) - ); + test.each(output)(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); }); describe('content', function () { - it('entries(), iteration', function () { - expect(AXObjectsMap.entries()).toEqual( - expect.arrayContaining( - [ - ["AbbrRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'abbr',},},],type: 'structure',})], - ["AlertDialogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alertdialog',},},],type: 'window',})], - ["AlertRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alert',},},],type: 'structure',})], - ["AnnotationRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ApplicationRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'application',},},],type: 'window',})], - ["ArticleRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'article',},},{module: 'HTML',concept: {name: 'article',},},],type: 'structure',})], - ["AudioRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'audio',},},],type: 'widget',})], - ["BannerRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'banner',},},],type: 'structure',})], - ["BlockquoteRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'blockquote',},},],type: 'structure',})], - ["BusyIndicatorRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-busy',value: 'true',},],},},],type: 'widget',})], - ["ButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'button',},},{module: 'HTML',concept: {name: 'button',},},],type: 'widget',})], - ["CanvasRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'canvas',},},],type: 'widget',})], - ["CaptionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'caption',},},],type: 'structure',})], - ["CellRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'cell',},},{module: 'ARIA',concept: {name: 'gridcell',},},{module: 'HTML',concept: {name: 'td',},},],type: 'widget',})], - ["CheckBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'checkbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',})], - ["ColorWellRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'color',},],},},],type: 'widget',})], - ["ColumnHeaderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'columnheader',},},{module: 'HTML',concept: {name: 'th',},},],type: 'widget',})], - ["ColumnRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ComboBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'combobox',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',})], - ["ComplementaryRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'complementary',},},],type: 'structure',})], - ["ContentInfoRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'structureinfo',},},],type: 'structure',})], - ["DateRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'date',},],},},],type: 'widget',})], - ["DateTimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'datetime',},],},},],type: 'widget',})], - ["DefinitionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dfn',},},],type: 'structure',})], - ["DescriptionListDetailRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dd',},},],type: 'structure',})], - ["DescriptionListRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dl',},},],type: 'structure',})], - ["DescriptionListTermRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dt',},},],type: 'structure',})], - ["DetailsRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'details',},},],type: 'structure',})], - ["DialogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'dialog',},},{module: 'HTML',concept: {name: 'dialog',},},],type: 'window',})], - ["DirectoryRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'directory',},},{module: 'HTML',concept: {name: 'dir',},},],type: 'structure',})], - ["DisclosureTriangleRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'summary',},},],type: 'widget',})], - ["DivRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'div',},},],type: 'generic',})], - ["DocumentRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'document',},},],type: 'structure',})], - ["EmbeddedObjectRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'embed',},},],type: 'widget',})], - ["FeedRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'feed',},},],type: 'structure',})], - ["FigcaptionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'figcaption',},},],type: 'structure',})], - ["FigureRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'figure',},},{module: 'HTML',concept: {name: 'figure',},},],type: 'structure',})], - ["FooterRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'footer',},},],type: 'structure',})], - ["FormRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'form',},},{module: 'HTML',concept: {name: 'form',},},],type: 'structure',})], - ["GridRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'grid',},},],type: 'widget',})], - ["GroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'group',},},],type: 'structure',})], - ["HeadingRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'heading',},},{module: 'HTML',concept: {name: 'h1',},},{module: 'HTML',concept: {name: 'h2',},},{module: 'HTML',concept: {name: 'h3',},},{module: 'HTML',concept: {name: 'h4',},},{module: 'HTML',concept: {name: 'h5',},},{module: 'HTML',concept: {name: 'h6',},},],type: 'structure',})], - ["IframePresentationalRole", expect.objectContaining({relatedConcepts: [],type: 'window',})], - ["IframeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'iframe',},},],type: 'window',})], - ["IgnoredRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ImageMapLinkRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["ImageMapRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'img',attributes: [{name: 'usemap',},],},},],type: 'structure',})], - ["ImageRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'img',},},{module: 'HTML',concept: {name: 'img',},},],type: 'structure',})], - ["InlineTextBoxRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',},},],type: 'widget',})], - ["InputTimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'time',},],},},],type: 'widget',})], - ["LabelRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'label',},},],type: 'structure',})], - ["LegendRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'legend',},},],type: 'structure',})], - ["LineBreakRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'br',},},],type: 'structure',})], - ["LinkRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'link',},},{module: 'HTML',concept: {name: 'a',attributes: [{name: 'href',},],},},],type: 'widget',})], - ["ListBoxOptionRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'option',},},{module: 'HTML',concept: {name: 'option',},},],type: 'widget',})], - ["ListBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listbox',},},{module: 'HTML',concept: {name: 'datalist',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',})], - ["ListItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listitem',},},{module: 'HTML',concept: {name: 'li',},},],type: 'structure',})], - ["ListMarkerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ListRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'list',},},{module: 'HTML',concept: {name: 'ul',},},{module: 'HTML',concept: {name: 'ol',},},],type: 'structure',})], - ["LogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'log',},},],type: 'structure',})], - ["MainRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'main',},},{module: 'HTML',concept: {name: 'main',},},],type: 'structure',})], - ["MarkRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'mark',},},],type: 'structure',})], - ["MarqueeRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'marquee',},},{module: 'HTML',concept: {name: 'marquee',},},],type: 'structure',})], - ["MathRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'math',},},],type: 'structure',})], - ["MenuBarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menubar',},},],type: 'structure',})], - ["MenuButtonRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitem',},},{module: 'HTML',concept: {name: 'menuitem',},},],type: 'widget',})], - ["MenuItemCheckBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemcheckbox',},},],type: 'widget',})], - ["MenuItemRadioRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemradio',},},],type: 'widget',})], - ["MenuListOptionRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuListPopupRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menu',},},{module: 'HTML',concept: {name: 'menu',},},],type: 'structure',})], - ["MeterRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'meter',},},],type: 'structure',})], - ["NavigationRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'navigation',},},{module: 'HTML',concept: {name: 'nav',},},],type: 'structure',})], - ["NoneRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'none',},},],type: 'structure',})], - ["NoteRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'note',},},],type: 'structure',})], - ["OutlineRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ParagraphRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'p',},},],type: 'structure',})], - ["PopUpButtonRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["PreRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'pre',},},],type: 'structure',})], - ["PresentationalRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'presentation',},},],type: 'structure',})], - ["ProgressIndicatorRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'progressbar',},},{module: 'HTML',concept: {name: 'progress',},},],type: 'structure',})], - ["RadioButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radio',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'radio',},],},},],type: 'widget',})], - ["RadioGroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radiogroup',},},],type: 'structure',})], - ["RegionRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'region',},},],type: 'structure',})], - ["RootWebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["RowHeaderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'rowheader',},},{module: 'HTML',concept: {name: 'th',attributes: [{name: 'scope',value: 'row',},],},},],type: 'widget',})], - ["RowRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'row',},},{module: 'HTML',concept: {name: 'tr',},},],type: 'structure',})], - ["RubyRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'ruby',},},],type: 'structure',})], - ["RulerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ScrollAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ScrollBarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'scrollbar',},},],type: 'widget',})], - ["SeamlessWebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SearchRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'search',},},],type: 'structure',})], - ["SearchBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'searchbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'search',},],},},],type: 'widget',})], - ["SliderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'slider',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'range',},],},},],type: 'widget',})], - ["SliderThumbRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SpinButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'spinbutton',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'number',},],},},],type: 'widget',})], - ["SpinButtonPartRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SplitterRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'separator',},},],type: 'widget',})], - ["StaticTextRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["StatusRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'status',},},],type: 'structure',})], - ["SVGRootRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SwitchRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'switch',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',})], - ["TabGroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',})], - ["TabRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tab',},},],type: 'widget',})], - ["TableHeaderContainerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["TableRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'table',},},{module: 'HTML',concept: {name: 'table',},},],type: 'structure',})], - ["TabListRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',})], - ["TabPanelRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tabpanel',},},],type: 'structure',})], - ["TermRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'term',},},],type: 'structure',})], - ["TextFieldRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'textbox',},},{module: 'HTML',concept: {name: 'input',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'text',},],},},],type: 'widget',})], - ["TimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'time',},},],type: 'structure',})], - ["TimerRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'timer',},},],type: 'structure',})], - ["ToggleButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-pressed',},],},},],type: 'widget',})], - ["ToolbarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'toolbar',},},],type: 'structure',})], - ["TreeRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tree',},},],type: 'widget',})], - ["TreeGridRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treegrid',},},],type: 'widget',})], - ["TreeItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treeitem',},},],type: 'widget',})], - ["UserInterfaceTooltipRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tooltip',},},],type: 'structure',})], - ["VideoRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'video',},},],type: 'widget',})], - ["WebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["WindowRole", expect.objectContaining({relatedConcepts: [],type: 'window',})], - ] - ) - ); - expect([...AXObjectsMap.entries()]).toEqual( - expect.arrayContaining( - [ - ["AbbrRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'abbr',},},],type: 'structure',})], - ["AlertDialogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alertdialog',},},],type: 'window',})], - ["AlertRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alert',},},],type: 'structure',})], - ["AnnotationRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ApplicationRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'application',},},],type: 'window',})], - ["ArticleRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'article',},},{module: 'HTML',concept: {name: 'article',},},],type: 'structure',})], - ["AudioRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'audio',},},],type: 'widget',})], - ["BannerRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'banner',},},],type: 'structure',})], - ["BlockquoteRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'blockquote',},},],type: 'structure',})], - ["BusyIndicatorRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-busy',value: 'true',},],},},],type: 'widget',})], - ["ButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'button',},},{module: 'HTML',concept: {name: 'button',},},],type: 'widget',})], - ["CanvasRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'canvas',},},],type: 'widget',})], - ["CaptionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'caption',},},],type: 'structure',})], - ["CellRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'cell',},},{module: 'ARIA',concept: {name: 'gridcell',},},{module: 'HTML',concept: {name: 'td',},},],type: 'widget',})], - ["CheckBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'checkbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',})], - ["ColorWellRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'color',},],},},],type: 'widget',})], - ["ColumnHeaderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'columnheader',},},{module: 'HTML',concept: {name: 'th',},},],type: 'widget',})], - ["ColumnRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ComboBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'combobox',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',})], - ["ComplementaryRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'complementary',},},],type: 'structure',})], - ["ContentInfoRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'structureinfo',},},],type: 'structure',})], - ["DateRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'date',},],},},],type: 'widget',})], - ["DateTimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'datetime',},],},},],type: 'widget',})], - ["DefinitionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dfn',},},],type: 'structure',})], - ["DescriptionListDetailRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dd',},},],type: 'structure',})], - ["DescriptionListRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dl',},},],type: 'structure',})], - ["DescriptionListTermRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dt',},},],type: 'structure',})], - ["DetailsRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'details',},},],type: 'structure',})], - ["DialogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'dialog',},},{module: 'HTML',concept: {name: 'dialog',},},],type: 'window',})], - ["DirectoryRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'directory',},},{module: 'HTML',concept: {name: 'dir',},},],type: 'structure',})], - ["DisclosureTriangleRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'summary',},},],type: 'widget',})], - ["DivRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'div',},},],type: 'generic',})], - ["DocumentRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'document',},},],type: 'structure',})], - ["EmbeddedObjectRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'embed',},},],type: 'widget',})], - ["FeedRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'feed',},},],type: 'structure',})], - ["FigcaptionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'figcaption',},},],type: 'structure',})], - ["FigureRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'figure',},},{module: 'HTML',concept: {name: 'figure',},},],type: 'structure',})], - ["FooterRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'footer',},},],type: 'structure',})], - ["FormRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'form',},},{module: 'HTML',concept: {name: 'form',},},],type: 'structure',})], - ["GridRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'grid',},},],type: 'widget',})], - ["GroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'group',},},],type: 'structure',})], - ["HeadingRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'heading',},},{module: 'HTML',concept: {name: 'h1',},},{module: 'HTML',concept: {name: 'h2',},},{module: 'HTML',concept: {name: 'h3',},},{module: 'HTML',concept: {name: 'h4',},},{module: 'HTML',concept: {name: 'h5',},},{module: 'HTML',concept: {name: 'h6',},},],type: 'structure',})], - ["IframePresentationalRole", expect.objectContaining({relatedConcepts: [],type: 'window',})], - ["IframeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'iframe',},},],type: 'window',})], - ["IgnoredRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ImageMapLinkRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["ImageMapRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'img',attributes: [{name: 'usemap',},],},},],type: 'structure',})], - ["ImageRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'img',},},{module: 'HTML',concept: {name: 'img',},},],type: 'structure',})], - ["InlineTextBoxRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',},},],type: 'widget',})], - ["InputTimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'time',},],},},],type: 'widget',})], - ["LabelRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'label',},},],type: 'structure',})], - ["LegendRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'legend',},},],type: 'structure',})], - ["LineBreakRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'br',},},],type: 'structure',})], - ["LinkRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'link',},},{module: 'HTML',concept: {name: 'a',attributes: [{name: 'href',},],},},],type: 'widget',})], - ["ListBoxOptionRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'option',},},{module: 'HTML',concept: {name: 'option',},},],type: 'widget',})], - ["ListBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listbox',},},{module: 'HTML',concept: {name: 'datalist',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',})], - ["ListItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listitem',},},{module: 'HTML',concept: {name: 'li',},},],type: 'structure',})], - ["ListMarkerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ListRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'list',},},{module: 'HTML',concept: {name: 'ul',},},{module: 'HTML',concept: {name: 'ol',},},],type: 'structure',})], - ["LogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'log',},},],type: 'structure',})], - ["MainRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'main',},},{module: 'HTML',concept: {name: 'main',},},],type: 'structure',})], - ["MarkRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'mark',},},],type: 'structure',})], - ["MarqueeRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'marquee',},},{module: 'HTML',concept: {name: 'marquee',},},],type: 'structure',})], - ["MathRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'math',},},],type: 'structure',})], - ["MenuBarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menubar',},},],type: 'structure',})], - ["MenuButtonRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitem',},},{module: 'HTML',concept: {name: 'menuitem',},},],type: 'widget',})], - ["MenuItemCheckBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemcheckbox',},},],type: 'widget',})], - ["MenuItemRadioRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemradio',},},],type: 'widget',})], - ["MenuListOptionRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuListPopupRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menu',},},{module: 'HTML',concept: {name: 'menu',},},],type: 'structure',})], - ["MeterRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'meter',},},],type: 'structure',})], - ["NavigationRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'navigation',},},{module: 'HTML',concept: {name: 'nav',},},],type: 'structure',})], - ["NoneRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'none',},},],type: 'structure',})], - ["NoteRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'note',},},],type: 'structure',})], - ["OutlineRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ParagraphRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'p',},},],type: 'structure',})], - ["PopUpButtonRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["PreRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'pre',},},],type: 'structure',})], - ["PresentationalRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'presentation',},},],type: 'structure',})], - ["ProgressIndicatorRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'progressbar',},},{module: 'HTML',concept: {name: 'progress',},},],type: 'structure',})], - ["RadioButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radio',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'radio',},],},},],type: 'widget',})], - ["RadioGroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radiogroup',},},],type: 'structure',})], - ["RegionRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'region',},},],type: 'structure',})], - ["RootWebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["RowHeaderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'rowheader',},},{module: 'HTML',concept: {name: 'th',attributes: [{name: 'scope',value: 'row',},],},},],type: 'widget',})], - ["RowRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'row',},},{module: 'HTML',concept: {name: 'tr',},},],type: 'structure',})], - ["RubyRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'ruby',},},],type: 'structure',})], - ["RulerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ScrollAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ScrollBarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'scrollbar',},},],type: 'widget',})], - ["SeamlessWebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SearchRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'search',},},],type: 'structure',})], - ["SearchBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'searchbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'search',},],},},],type: 'widget',})], - ["SliderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'slider',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'range',},],},},],type: 'widget',})], - ["SliderThumbRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SpinButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'spinbutton',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'number',},],},},],type: 'widget',})], - ["SpinButtonPartRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SplitterRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'separator',},},],type: 'widget',})], - ["StaticTextRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["StatusRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'status',},},],type: 'structure',})], - ["SVGRootRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SwitchRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'switch',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',})], - ["TabGroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',})], - ["TabRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tab',},},],type: 'widget',})], - ["TableHeaderContainerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["TableRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'table',},},{module: 'HTML',concept: {name: 'table',},},],type: 'structure',})], - ["TabListRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',})], - ["TabPanelRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tabpanel',},},],type: 'structure',})], - ["TermRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'term',},},],type: 'structure',})], - ["TextFieldRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'textbox',},},{module: 'HTML',concept: {name: 'input',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'text',},],},},],type: 'widget',})], - ["TimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'time',},},],type: 'structure',})], - ["TimerRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'timer',},},],type: 'structure',})], - ["ToggleButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-pressed',},],},},],type: 'widget',})], - ["ToolbarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'toolbar',},},],type: 'structure',})], - ["TreeRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tree',},},],type: 'widget',})], - ["TreeGridRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treegrid',},},],type: 'widget',})], - ["TreeItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treeitem',},},],type: 'widget',})], - ["UserInterfaceTooltipRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tooltip',},},],type: 'structure',})], - ["VideoRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'video',},},],type: 'widget',})], - ["WebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["WindowRole", expect.objectContaining({relatedConcepts: [],type: 'window',})], - ] - ) - ); + describe('entries(), iteration', function () { + test.each(AXObjectsMap.entries())(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); + test.each([...AXObjectsMap.entries()])(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); - it('forEach()', function () { + describe('forEach()', function () { const output = []; let context; AXObjectsMap.forEach((value, key, map) => { @@ -545,264 +178,16 @@ describe('AXObjectsMap', function () { context = map; } }); - expect(output).toEqual( - expect.arrayContaining( - [ - ["AbbrRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'abbr',},},],type: 'structure',})], - ["AlertDialogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alertdialog',},},],type: 'window',})], - ["AlertRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alert',},},],type: 'structure',})], - ["AnnotationRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ApplicationRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'application',},},],type: 'window',})], - ["ArticleRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'article',},},{module: 'HTML',concept: {name: 'article',},},],type: 'structure',})], - ["AudioRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'audio',},},],type: 'widget',})], - ["BannerRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'banner',},},],type: 'structure',})], - ["BlockquoteRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'blockquote',},},],type: 'structure',})], - ["BusyIndicatorRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-busy',value: 'true',},],},},],type: 'widget',})], - ["ButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'button',},},{module: 'HTML',concept: {name: 'button',},},],type: 'widget',})], - ["CanvasRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'canvas',},},],type: 'widget',})], - ["CaptionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'caption',},},],type: 'structure',})], - ["CellRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'cell',},},{module: 'ARIA',concept: {name: 'gridcell',},},{module: 'HTML',concept: {name: 'td',},},],type: 'widget',})], - ["CheckBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'checkbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',})], - ["ColorWellRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'color',},],},},],type: 'widget',})], - ["ColumnHeaderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'columnheader',},},{module: 'HTML',concept: {name: 'th',},},],type: 'widget',})], - ["ColumnRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ComboBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'combobox',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',})], - ["ComplementaryRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'complementary',},},],type: 'structure',})], - ["ContentInfoRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'structureinfo',},},],type: 'structure',})], - ["DateRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'date',},],},},],type: 'widget',})], - ["DateTimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'datetime',},],},},],type: 'widget',})], - ["DefinitionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dfn',},},],type: 'structure',})], - ["DescriptionListDetailRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dd',},},],type: 'structure',})], - ["DescriptionListRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dl',},},],type: 'structure',})], - ["DescriptionListTermRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dt',},},],type: 'structure',})], - ["DetailsRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'details',},},],type: 'structure',})], - ["DialogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'dialog',},},{module: 'HTML',concept: {name: 'dialog',},},],type: 'window',})], - ["DirectoryRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'directory',},},{module: 'HTML',concept: {name: 'dir',},},],type: 'structure',})], - ["DisclosureTriangleRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'summary',},},],type: 'widget',})], - ["DivRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'div',},},],type: 'generic',})], - ["DocumentRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'document',},},],type: 'structure',})], - ["EmbeddedObjectRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'embed',},},],type: 'widget',})], - ["FeedRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'feed',},},],type: 'structure',})], - ["FigcaptionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'figcaption',},},],type: 'structure',})], - ["FigureRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'figure',},},{module: 'HTML',concept: {name: 'figure',},},],type: 'structure',})], - ["FooterRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'footer',},},],type: 'structure',})], - ["FormRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'form',},},{module: 'HTML',concept: {name: 'form',},},],type: 'structure',})], - ["GridRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'grid',},},],type: 'widget',})], - ["GroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'group',},},],type: 'structure',})], - ["HeadingRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'heading',},},{module: 'HTML',concept: {name: 'h1',},},{module: 'HTML',concept: {name: 'h2',},},{module: 'HTML',concept: {name: 'h3',},},{module: 'HTML',concept: {name: 'h4',},},{module: 'HTML',concept: {name: 'h5',},},{module: 'HTML',concept: {name: 'h6',},},],type: 'structure',})], - ["IframePresentationalRole", expect.objectContaining({relatedConcepts: [],type: 'window',})], - ["IframeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'iframe',},},],type: 'window',})], - ["IgnoredRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ImageMapLinkRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["ImageMapRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'img',attributes: [{name: 'usemap',},],},},],type: 'structure',})], - ["ImageRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'img',},},{module: 'HTML',concept: {name: 'img',},},],type: 'structure',})], - ["InlineTextBoxRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',},},],type: 'widget',})], - ["InputTimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'time',},],},},],type: 'widget',})], - ["LabelRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'label',},},],type: 'structure',})], - ["LegendRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'legend',},},],type: 'structure',})], - ["LineBreakRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'br',},},],type: 'structure',})], - ["LinkRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'link',},},{module: 'HTML',concept: {name: 'a',attributes: [{name: 'href',},],},},],type: 'widget',})], - ["ListBoxOptionRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'option',},},{module: 'HTML',concept: {name: 'option',},},],type: 'widget',})], - ["ListBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listbox',},},{module: 'HTML',concept: {name: 'datalist',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',})], - ["ListItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listitem',},},{module: 'HTML',concept: {name: 'li',},},],type: 'structure',})], - ["ListMarkerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ListRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'list',},},{module: 'HTML',concept: {name: 'ul',},},{module: 'HTML',concept: {name: 'ol',},},],type: 'structure',})], - ["LogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'log',},},],type: 'structure',})], - ["MainRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'main',},},{module: 'HTML',concept: {name: 'main',},},],type: 'structure',})], - ["MarkRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'mark',},},],type: 'structure',})], - ["MarqueeRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'marquee',},},{module: 'HTML',concept: {name: 'marquee',},},],type: 'structure',})], - ["MathRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'math',},},],type: 'structure',})], - ["MenuBarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menubar',},},],type: 'structure',})], - ["MenuButtonRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitem',},},{module: 'HTML',concept: {name: 'menuitem',},},],type: 'widget',})], - ["MenuItemCheckBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemcheckbox',},},],type: 'widget',})], - ["MenuItemRadioRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemradio',},},],type: 'widget',})], - ["MenuListOptionRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuListPopupRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menu',},},{module: 'HTML',concept: {name: 'menu',},},],type: 'structure',})], - ["MeterRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'meter',},},],type: 'structure',})], - ["NavigationRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'navigation',},},{module: 'HTML',concept: {name: 'nav',},},],type: 'structure',})], - ["NoneRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'none',},},],type: 'structure',})], - ["NoteRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'note',},},],type: 'structure',})], - ["OutlineRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ParagraphRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'p',},},],type: 'structure',})], - ["PopUpButtonRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["PreRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'pre',},},],type: 'structure',})], - ["PresentationalRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'presentation',},},],type: 'structure',})], - ["ProgressIndicatorRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'progressbar',},},{module: 'HTML',concept: {name: 'progress',},},],type: 'structure',})], - ["RadioButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radio',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'radio',},],},},],type: 'widget',})], - ["RadioGroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radiogroup',},},],type: 'structure',})], - ["RegionRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'region',},},],type: 'structure',})], - ["RootWebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["RowHeaderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'rowheader',},},{module: 'HTML',concept: {name: 'th',attributes: [{name: 'scope',value: 'row',},],},},],type: 'widget',})], - ["RowRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'row',},},{module: 'HTML',concept: {name: 'tr',},},],type: 'structure',})], - ["RubyRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'ruby',},},],type: 'structure',})], - ["RulerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ScrollAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ScrollBarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'scrollbar',},},],type: 'widget',})], - ["SeamlessWebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SearchRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'search',},},],type: 'structure',})], - ["SearchBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'searchbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'search',},],},},],type: 'widget',})], - ["SliderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'slider',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'range',},],},},],type: 'widget',})], - ["SliderThumbRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SpinButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'spinbutton',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'number',},],},},],type: 'widget',})], - ["SpinButtonPartRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SplitterRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'separator',},},],type: 'widget',})], - ["StaticTextRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["StatusRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'status',},},],type: 'structure',})], - ["SVGRootRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SwitchRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'switch',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',})], - ["TabGroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',})], - ["TabRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tab',},},],type: 'widget',})], - ["TableHeaderContainerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["TableRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'table',},},{module: 'HTML',concept: {name: 'table',},},],type: 'structure',})], - ["TabListRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',})], - ["TabPanelRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tabpanel',},},],type: 'structure',})], - ["TermRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'term',},},],type: 'structure',})], - ["TextFieldRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'textbox',},},{module: 'HTML',concept: {name: 'input',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'text',},],},},],type: 'widget',})], - ["TimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'time',},},],type: 'structure',})], - ["TimerRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'timer',},},],type: 'structure',})], - ["ToggleButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-pressed',},],},},],type: 'widget',})], - ["ToolbarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'toolbar',},},],type: 'structure',})], - ["TreeRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tree',},},],type: 'widget',})], - ["TreeGridRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treegrid',},},],type: 'widget',})], - ["TreeItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treeitem',},},],type: 'widget',})], - ["UserInterfaceTooltipRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tooltip',},},],type: 'structure',})], - ["VideoRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'video',},},],type: 'widget',})], - ["WebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["WindowRole", expect.objectContaining({relatedConcepts: [],type: 'window',})], - ] - ) - ); - expect(context).toEqual( - expect.arrayContaining( - [ - ["AbbrRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'abbr',},},],type: 'structure',})], - ["AlertDialogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alertdialog',},},],type: 'window',})], - ["AlertRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alert',},},],type: 'structure',})], - ["AnnotationRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ApplicationRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'application',},},],type: 'window',})], - ["ArticleRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'article',},},{module: 'HTML',concept: {name: 'article',},},],type: 'structure',})], - ["AudioRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'audio',},},],type: 'widget',})], - ["BannerRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'banner',},},],type: 'structure',})], - ["BlockquoteRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'blockquote',},},],type: 'structure',})], - ["BusyIndicatorRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-busy',value: 'true',},],},},],type: 'widget',})], - ["ButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'button',},},{module: 'HTML',concept: {name: 'button',},},],type: 'widget',})], - ["CanvasRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'canvas',},},],type: 'widget',})], - ["CaptionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'caption',},},],type: 'structure',})], - ["CellRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'cell',},},{module: 'ARIA',concept: {name: 'gridcell',},},{module: 'HTML',concept: {name: 'td',},},],type: 'widget',})], - ["CheckBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'checkbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',})], - ["ColorWellRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'color',},],},},],type: 'widget',})], - ["ColumnHeaderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'columnheader',},},{module: 'HTML',concept: {name: 'th',},},],type: 'widget',})], - ["ColumnRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ComboBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'combobox',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',})], - ["ComplementaryRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'complementary',},},],type: 'structure',})], - ["ContentInfoRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'structureinfo',},},],type: 'structure',})], - ["DateRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'date',},],},},],type: 'widget',})], - ["DateTimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'datetime',},],},},],type: 'widget',})], - ["DefinitionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dfn',},},],type: 'structure',})], - ["DescriptionListDetailRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dd',},},],type: 'structure',})], - ["DescriptionListRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dl',},},],type: 'structure',})], - ["DescriptionListTermRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dt',},},],type: 'structure',})], - ["DetailsRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'details',},},],type: 'structure',})], - ["DialogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'dialog',},},{module: 'HTML',concept: {name: 'dialog',},},],type: 'window',})], - ["DirectoryRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'directory',},},{module: 'HTML',concept: {name: 'dir',},},],type: 'structure',})], - ["DisclosureTriangleRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'summary',},},],type: 'widget',})], - ["DivRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'div',},},],type: 'generic',})], - ["DocumentRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'document',},},],type: 'structure',})], - ["EmbeddedObjectRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'embed',},},],type: 'widget',})], - ["FeedRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'feed',},},],type: 'structure',})], - ["FigcaptionRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'figcaption',},},],type: 'structure',})], - ["FigureRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'figure',},},{module: 'HTML',concept: {name: 'figure',},},],type: 'structure',})], - ["FooterRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'footer',},},],type: 'structure',})], - ["FormRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'form',},},{module: 'HTML',concept: {name: 'form',},},],type: 'structure',})], - ["GridRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'grid',},},],type: 'widget',})], - ["GroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'group',},},],type: 'structure',})], - ["HeadingRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'heading',},},{module: 'HTML',concept: {name: 'h1',},},{module: 'HTML',concept: {name: 'h2',},},{module: 'HTML',concept: {name: 'h3',},},{module: 'HTML',concept: {name: 'h4',},},{module: 'HTML',concept: {name: 'h5',},},{module: 'HTML',concept: {name: 'h6',},},],type: 'structure',})], - ["IframePresentationalRole", expect.objectContaining({relatedConcepts: [],type: 'window',})], - ["IframeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'iframe',},},],type: 'window',})], - ["IgnoredRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ImageMapLinkRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["ImageMapRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'img',attributes: [{name: 'usemap',},],},},],type: 'structure',})], - ["ImageRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'img',},},{module: 'HTML',concept: {name: 'img',},},],type: 'structure',})], - ["InlineTextBoxRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',},},],type: 'widget',})], - ["InputTimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'time',},],},},],type: 'widget',})], - ["LabelRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'label',},},],type: 'structure',})], - ["LegendRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'legend',},},],type: 'structure',})], - ["LineBreakRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'br',},},],type: 'structure',})], - ["LinkRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'link',},},{module: 'HTML',concept: {name: 'a',attributes: [{name: 'href',},],},},],type: 'widget',})], - ["ListBoxOptionRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'option',},},{module: 'HTML',concept: {name: 'option',},},],type: 'widget',})], - ["ListBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listbox',},},{module: 'HTML',concept: {name: 'datalist',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',})], - ["ListItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listitem',},},{module: 'HTML',concept: {name: 'li',},},],type: 'structure',})], - ["ListMarkerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ListRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'list',},},{module: 'HTML',concept: {name: 'ul',},},{module: 'HTML',concept: {name: 'ol',},},],type: 'structure',})], - ["LogRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'log',},},],type: 'structure',})], - ["MainRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'main',},},{module: 'HTML',concept: {name: 'main',},},],type: 'structure',})], - ["MarkRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'mark',},},],type: 'structure',})], - ["MarqueeRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'marquee',},},{module: 'HTML',concept: {name: 'marquee',},},],type: 'structure',})], - ["MathRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'math',},},],type: 'structure',})], - ["MenuBarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menubar',},},],type: 'structure',})], - ["MenuButtonRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitem',},},{module: 'HTML',concept: {name: 'menuitem',},},],type: 'widget',})], - ["MenuItemCheckBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemcheckbox',},},],type: 'widget',})], - ["MenuItemRadioRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemradio',},},],type: 'widget',})], - ["MenuListOptionRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuListPopupRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["MenuRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menu',},},{module: 'HTML',concept: {name: 'menu',},},],type: 'structure',})], - ["MeterRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'meter',},},],type: 'structure',})], - ["NavigationRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'navigation',},},{module: 'HTML',concept: {name: 'nav',},},],type: 'structure',})], - ["NoneRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'none',},},],type: 'structure',})], - ["NoteRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'note',},},],type: 'structure',})], - ["OutlineRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ParagraphRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'p',},},],type: 'structure',})], - ["PopUpButtonRole", expect.objectContaining({relatedConcepts: [],type: 'widget',})], - ["PreRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'pre',},},],type: 'structure',})], - ["PresentationalRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'presentation',},},],type: 'structure',})], - ["ProgressIndicatorRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'progressbar',},},{module: 'HTML',concept: {name: 'progress',},},],type: 'structure',})], - ["RadioButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radio',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'radio',},],},},],type: 'widget',})], - ["RadioGroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radiogroup',},},],type: 'structure',})], - ["RegionRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'region',},},],type: 'structure',})], - ["RootWebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["RowHeaderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'rowheader',},},{module: 'HTML',concept: {name: 'th',attributes: [{name: 'scope',value: 'row',},],},},],type: 'widget',})], - ["RowRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'row',},},{module: 'HTML',concept: {name: 'tr',},},],type: 'structure',})], - ["RubyRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'ruby',},},],type: 'structure',})], - ["RulerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ScrollAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["ScrollBarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'scrollbar',},},],type: 'widget',})], - ["SeamlessWebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SearchRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'search',},},],type: 'structure',})], - ["SearchBoxRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'searchbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'search',},],},},],type: 'widget',})], - ["SliderRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'slider',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'range',},],},},],type: 'widget',})], - ["SliderThumbRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SpinButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'spinbutton',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'number',},],},},],type: 'widget',})], - ["SpinButtonPartRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SplitterRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'separator',},},],type: 'widget',})], - ["StaticTextRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["StatusRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'status',},},],type: 'structure',})], - ["SVGRootRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["SwitchRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'switch',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',})], - ["TabGroupRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',})], - ["TabRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tab',},},],type: 'widget',})], - ["TableHeaderContainerRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["TableRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'table',},},{module: 'HTML',concept: {name: 'table',},},],type: 'structure',})], - ["TabListRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',})], - ["TabPanelRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tabpanel',},},],type: 'structure',})], - ["TermRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'term',},},],type: 'structure',})], - ["TextFieldRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'textbox',},},{module: 'HTML',concept: {name: 'input',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'text',},],},},],type: 'widget',})], - ["TimeRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'time',},},],type: 'structure',})], - ["TimerRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'timer',},},],type: 'structure',})], - ["ToggleButtonRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-pressed',},],},},],type: 'widget',})], - ["ToolbarRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'toolbar',},},],type: 'structure',})], - ["TreeRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tree',},},],type: 'widget',})], - ["TreeGridRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treegrid',},},],type: 'widget',})], - ["TreeItemRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treeitem',},},],type: 'widget',})], - ["UserInterfaceTooltipRole", expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tooltip',},},],type: 'structure',})], - ["VideoRole", expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'video',},},],type: 'widget',})], - ["WebAreaRole", expect.objectContaining({relatedConcepts: [],type: 'structure',})], - ["WindowRole", expect.objectContaining({relatedConcepts: [],type: 'window',})], - ] - ) - ); + test.each(output)(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); + test.each(context)(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); it('get()', function () { expect(AXObjectsMap.get("AbbrRole")).toEqual(expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'abbr',},},],type: 'structure',}),); @@ -835,7 +220,7 @@ describe('AXObjectsMap', function () { expect(AXObjectsMap.get("DetailsRole")).toEqual(expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'details',},},],type: 'structure',}),); expect(AXObjectsMap.get("DialogRole")).toEqual(expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'dialog',},},{module: 'HTML',concept: {name: 'dialog',},},],type: 'window',}),); expect(AXObjectsMap.get("DirectoryRole")).toEqual(expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'directory',},},{module: 'HTML',concept: {name: 'dir',},},],type: 'structure',}),); - expect(AXObjectsMap.get("DisclosureTriangleRole")).toEqual(expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'summary',},},],type: 'widget',}),); + expect(AXObjectsMap.get("DisclosureTriangleRole")).toEqual(expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {attributes: [{name: 'open',value: 'open',},],constraints: ['scoped to a details element',],name: 'summary',},},{module: 'HTML',concept: {attributes: [{name: 'aria-expanded',},],constraints: ['scoped to a details element',],name: 'summary',},},],type: 'widget',}),); expect(AXObjectsMap.get("DivRole")).toEqual(expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'div',},},],type: 'generic',}),); expect(AXObjectsMap.get("DocumentRole")).toEqual(expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'document',},},],type: 'structure',}),); expect(AXObjectsMap.get("EmbeddedObjectRole")).toEqual(expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'embed',},},],type: 'widget',}),); @@ -933,525 +318,31 @@ describe('AXObjectsMap', function () { expect(AXObjectsMap.has('DialogRole')).toEqual(true); expect(AXObjectsMap.has('DoveRole')).toEqual(false); }); - it('keys(), iteration', function () { - expect(AXObjectsMap.keys()).toEqual( - expect.arrayContaining( - [ - "AbbrRole", - "AlertDialogRole", - "AlertRole", - "AnnotationRole", - "ApplicationRole", - "ArticleRole", - "AudioRole", - "BannerRole", - "BlockquoteRole", - "BusyIndicatorRole", - "ButtonRole", - "CanvasRole", - "CaptionRole", - "CellRole", - "CheckBoxRole", - "ColorWellRole", - "ColumnHeaderRole", - "ColumnRole", - "ComboBoxRole", - "ComplementaryRole", - "ContentInfoRole", - "DateRole", - "DateTimeRole", - "DefinitionRole", - "DescriptionListDetailRole", - "DescriptionListRole", - "DescriptionListTermRole", - "DetailsRole", - "DialogRole", - "DirectoryRole", - "DisclosureTriangleRole", - "DivRole", - "DocumentRole", - "EmbeddedObjectRole", - "FeedRole", - "FigcaptionRole", - "FigureRole", - "FooterRole", - "FormRole", - "GridRole", - "GroupRole", - "HeadingRole", - "IframePresentationalRole", - "IframeRole", - "IgnoredRole", - "ImageMapLinkRole", - "ImageMapRole", - "ImageRole", - "InlineTextBoxRole", - "InputTimeRole", - "LabelRole", - "LegendRole", - "LineBreakRole", - "LinkRole", - "ListBoxOptionRole", - "ListBoxRole", - "ListItemRole", - "ListMarkerRole", - "ListRole", - "LogRole", - "MainRole", - "MarkRole", - "MarqueeRole", - "MathRole", - "MenuBarRole", - "MenuButtonRole", - "MenuItemRole", - "MenuItemCheckBoxRole", - "MenuItemRadioRole", - "MenuListOptionRole", - "MenuListPopupRole", - "MenuRole", - "MeterRole", - "NavigationRole", - "NoneRole", - "NoteRole", - "OutlineRole", - "ParagraphRole", - "PopUpButtonRole", - "PreRole", - "PresentationalRole", - "ProgressIndicatorRole", - "RadioButtonRole", - "RadioGroupRole", - "RegionRole", - "RootWebAreaRole", - "RowHeaderRole", - "RowRole", - "RubyRole", - "RulerRole", - "ScrollAreaRole", - "ScrollBarRole", - "SeamlessWebAreaRole", - "SearchRole", - "SearchBoxRole", - "SliderRole", - "SliderThumbRole", - "SpinButtonRole", - "SpinButtonPartRole", - "SplitterRole", - "StaticTextRole", - "StatusRole", - "SVGRootRole", - "SwitchRole", - "TabGroupRole", - "TabRole", - "TableHeaderContainerRole", - "TableRole", - "TabListRole", - "TabPanelRole", - "TermRole", - "TextFieldRole", - "TimeRole", - "TimerRole", - "ToggleButtonRole", - "ToolbarRole", - "TreeRole", - "TreeGridRole", - "TreeItemRole", - "UserInterfaceTooltipRole", - "VideoRole", - "WebAreaRole", - "WindowRole", - ], - ), - ); - expect([...AXObjectsMap.keys()]).toEqual( - expect.arrayContaining( - [ - "AbbrRole", - "AlertDialogRole", - "AlertRole", - "AnnotationRole", - "ApplicationRole", - "ArticleRole", - "AudioRole", - "BannerRole", - "BlockquoteRole", - "BusyIndicatorRole", - "ButtonRole", - "CanvasRole", - "CaptionRole", - "CellRole", - "CheckBoxRole", - "ColorWellRole", - "ColumnHeaderRole", - "ColumnRole", - "ComboBoxRole", - "ComplementaryRole", - "ContentInfoRole", - "DateRole", - "DateTimeRole", - "DefinitionRole", - "DescriptionListDetailRole", - "DescriptionListRole", - "DescriptionListTermRole", - "DetailsRole", - "DialogRole", - "DirectoryRole", - "DisclosureTriangleRole", - "DivRole", - "DocumentRole", - "EmbeddedObjectRole", - "FeedRole", - "FigcaptionRole", - "FigureRole", - "FooterRole", - "FormRole", - "GridRole", - "GroupRole", - "HeadingRole", - "IframePresentationalRole", - "IframeRole", - "IgnoredRole", - "ImageMapLinkRole", - "ImageMapRole", - "ImageRole", - "InlineTextBoxRole", - "InputTimeRole", - "LabelRole", - "LegendRole", - "LineBreakRole", - "LinkRole", - "ListBoxOptionRole", - "ListBoxRole", - "ListItemRole", - "ListMarkerRole", - "ListRole", - "LogRole", - "MainRole", - "MarkRole", - "MarqueeRole", - "MathRole", - "MenuBarRole", - "MenuButtonRole", - "MenuItemRole", - "MenuItemCheckBoxRole", - "MenuItemRadioRole", - "MenuListOptionRole", - "MenuListPopupRole", - "MenuRole", - "MeterRole", - "NavigationRole", - "NoneRole", - "NoteRole", - "OutlineRole", - "ParagraphRole", - "PopUpButtonRole", - "PreRole", - "PresentationalRole", - "ProgressIndicatorRole", - "RadioButtonRole", - "RadioGroupRole", - "RegionRole", - "RootWebAreaRole", - "RowHeaderRole", - "RowRole", - "RubyRole", - "RulerRole", - "ScrollAreaRole", - "ScrollBarRole", - "SeamlessWebAreaRole", - "SearchRole", - "SearchBoxRole", - "SliderRole", - "SliderThumbRole", - "SpinButtonRole", - "SpinButtonPartRole", - "SplitterRole", - "StaticTextRole", - "StatusRole", - "SVGRootRole", - "SwitchRole", - "TabGroupRole", - "TabRole", - "TableHeaderContainerRole", - "TableRole", - "TabListRole", - "TabPanelRole", - "TermRole", - "TextFieldRole", - "TimeRole", - "TimerRole", - "ToggleButtonRole", - "ToolbarRole", - "TreeRole", - "TreeGridRole", - "TreeItemRole", - "UserInterfaceTooltipRole", - "VideoRole", - "WebAreaRole", - "WindowRole", - ], - ), - ); + describe('keys(), iteration', function () { + const entriesKeys = entriesList.map(entry => entry[0]); + test.each(AXObjectsMap.keys())('Testing key: %o', (key) => { + expect(entriesKeys).toEqual( + expect.arrayContaining([key]), + ); + }); + test.each([...AXObjectsMap.keys()])('Testing key: %o', (key) => { + expect(entriesKeys).toEqual( + expect.arrayContaining([key]), + ); + }); }); - it('values(), iteration', function () { - expect(AXObjectsMap.values()).toEqual( - expect.arrayContaining( - [ - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'abbr',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alertdialog',},},],type: 'window',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alert',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'application',},},],type: 'window',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'article',},},{module: 'HTML',concept: {name: 'article',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'audio',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'banner',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'blockquote',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-busy',value: 'true',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'button',},},{module: 'HTML',concept: {name: 'button',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'canvas',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'caption',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'cell',},},{module: 'ARIA',concept: {name: 'gridcell',},},{module: 'HTML',concept: {name: 'td',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'checkbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'color',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'columnheader',},},{module: 'HTML',concept: {name: 'th',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'combobox',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'complementary',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'structureinfo',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'date',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'datetime',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dfn',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dd',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dl',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dt',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'details',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'dialog',},},{module: 'HTML',concept: {name: 'dialog',},},],type: 'window',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'directory',},},{module: 'HTML',concept: {name: 'dir',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'summary',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'div',},},],type: 'generic',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'document',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'embed',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'feed',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'figcaption',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'figure',},},{module: 'HTML',concept: {name: 'figure',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'footer',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'form',},},{module: 'HTML',concept: {name: 'form',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'grid',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'group',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'heading',},},{module: 'HTML',concept: {name: 'h1',},},{module: 'HTML',concept: {name: 'h2',},},{module: 'HTML',concept: {name: 'h3',},},{module: 'HTML',concept: {name: 'h4',},},{module: 'HTML',concept: {name: 'h5',},},{module: 'HTML',concept: {name: 'h6',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'window',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'iframe',},},],type: 'window',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'img',attributes: [{name: 'usemap',},],},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'img',},},{module: 'HTML',concept: {name: 'img',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'time',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'label',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'legend',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'br',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'link',},},{module: 'HTML',concept: {name: 'a',attributes: [{name: 'href',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'option',},},{module: 'HTML',concept: {name: 'option',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listbox',},},{module: 'HTML',concept: {name: 'datalist',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listitem',},},{module: 'HTML',concept: {name: 'li',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'list',},},{module: 'HTML',concept: {name: 'ul',},},{module: 'HTML',concept: {name: 'ol',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'log',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'main',},},{module: 'HTML',concept: {name: 'main',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'mark',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'marquee',},},{module: 'HTML',concept: {name: 'marquee',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'math',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menubar',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitem',},},{module: 'HTML',concept: {name: 'menuitem',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemcheckbox',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemradio',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menu',},},{module: 'HTML',concept: {name: 'menu',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'meter',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'navigation',},},{module: 'HTML',concept: {name: 'nav',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'none',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'note',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'p',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'pre',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'presentation',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'progressbar',},},{module: 'HTML',concept: {name: 'progress',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radio',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'radio',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radiogroup',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'region',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'rowheader',},},{module: 'HTML',concept: {name: 'th',attributes: [{name: 'scope',value: 'row',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'row',},},{module: 'HTML',concept: {name: 'tr',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'ruby',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'scrollbar',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'search',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'searchbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'search',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'slider',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'range',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'spinbutton',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'number',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'separator',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'status',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'switch',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tab',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'table',},},{module: 'HTML',concept: {name: 'table',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tabpanel',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'term',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'textbox',},},{module: 'HTML',concept: {name: 'input',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'text',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'time',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'timer',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-pressed',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'toolbar',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tree',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treegrid',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treeitem',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tooltip',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'video',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'window',}), - ] - ), - ); - expect([...AXObjectsMap.values()]).toEqual( - expect.arrayContaining( - [ - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'abbr',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alertdialog',},},],type: 'window',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'alert',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'application',},},],type: 'window',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'article',},},{module: 'HTML',concept: {name: 'article',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'audio',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'banner',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'blockquote',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-busy',value: 'true',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'button',},},{module: 'HTML',concept: {name: 'button',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'canvas',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'caption',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'cell',},},{module: 'ARIA',concept: {name: 'gridcell',},},{module: 'HTML',concept: {name: 'td',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'checkbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'color',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'columnheader',},},{module: 'HTML',concept: {name: 'th',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'combobox',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'complementary',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'structureinfo',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'date',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'datetime',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dfn',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dd',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dl',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'dt',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'details',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'dialog',},},{module: 'HTML',concept: {name: 'dialog',},},],type: 'window',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'directory',},},{module: 'HTML',concept: {name: 'dir',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'summary',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'div',},},],type: 'generic',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'document',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'embed',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'feed',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'figcaption',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'figure',},},{module: 'HTML',concept: {name: 'figure',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'footer',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'form',},},{module: 'HTML',concept: {name: 'form',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'grid',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'group',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'heading',},},{module: 'HTML',concept: {name: 'h1',},},{module: 'HTML',concept: {name: 'h2',},},{module: 'HTML',concept: {name: 'h3',},},{module: 'HTML',concept: {name: 'h4',},},{module: 'HTML',concept: {name: 'h5',},},{module: 'HTML',concept: {name: 'h6',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'window',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'iframe',},},],type: 'window',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'img',attributes: [{name: 'usemap',},],},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'img',},},{module: 'HTML',concept: {name: 'img',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'time',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'label',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'legend',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'br',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'link',},},{module: 'HTML',concept: {name: 'a',attributes: [{name: 'href',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'option',},},{module: 'HTML',concept: {name: 'option',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listbox',},},{module: 'HTML',concept: {name: 'datalist',},},{module: 'HTML',concept: {name: 'select',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'listitem',},},{module: 'HTML',concept: {name: 'li',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'list',},},{module: 'HTML',concept: {name: 'ul',},},{module: 'HTML',concept: {name: 'ol',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'log',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'main',},},{module: 'HTML',concept: {name: 'main',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'mark',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'marquee',},},{module: 'HTML',concept: {name: 'marquee',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'math',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menubar',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitem',},},{module: 'HTML',concept: {name: 'menuitem',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemcheckbox',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menuitemradio',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'menu',},},{module: 'HTML',concept: {name: 'menu',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'meter',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'navigation',},},{module: 'HTML',concept: {name: 'nav',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'none',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'note',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'p',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'pre',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'presentation',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'progressbar',},},{module: 'HTML',concept: {name: 'progress',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radio',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'radio',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'radiogroup',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'region',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'rowheader',},},{module: 'HTML',concept: {name: 'th',attributes: [{name: 'scope',value: 'row',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'row',},},{module: 'HTML',concept: {name: 'tr',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'ruby',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'scrollbar',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'search',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'searchbox',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'search',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'slider',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'range',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'spinbutton',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'number',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'separator',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'status',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'switch',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'checkbox',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tab',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'table',},},{module: 'HTML',concept: {name: 'table',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tablist',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tabpanel',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'term',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'textbox',},},{module: 'HTML',concept: {name: 'input',},},{module: 'HTML',concept: {name: 'input',attributes: [{name: 'type',value: 'text',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'time',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'timer',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {attributes: [{name: 'aria-pressed',},],},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'toolbar',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tree',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treegrid',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'treeitem',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [{module: 'ARIA',concept: {name: 'tooltip',},},],type: 'structure',}), - expect.objectContaining({relatedConcepts: [{module: 'HTML',concept: {name: 'video',},},],type: 'widget',}), - expect.objectContaining({relatedConcepts: [],type: 'structure',}), - expect.objectContaining({relatedConcepts: [],type: 'window',}), - ] - ), - ); + describe('values(), iteration', function () { + const entriesValues = entriesList.map(entry => entry[1]); + test.each(AXObjectsMap.values().map(value => [value]))('Testing value: %o', (value) => { + expect(entriesValues).toEqual( + expect.arrayContaining([value]), + ); + }); + test.each([...AXObjectsMap.values()].map(value => [value]))('Testing value: %o', (value) => { + expect(entriesValues).toEqual( + expect.arrayContaining([value]), + ); + }); }); }); }); diff --git a/__tests__/src/elementAXObjectMap-test.js b/__tests__/src/elementAXObjectMap-test.js index f41003d..480bc09 100644 --- a/__tests__/src/elementAXObjectMap-test.js +++ b/__tests__/src/elementAXObjectMap-test.js @@ -2,177 +2,110 @@ import expect from 'expect'; import elementAXObjectMap from '../../src/elementAXObjectMap'; +const entriesList = [ + [{"name": "abbr"}, ["AbbrRole"]], + [{"name": "article"}, ["ArticleRole"]], + [{"name": "audio"}, ["AudioRole"]], + [{"name": "blockquote"}, ["BlockquoteRole"]], + [{"name": "button"}, ["ButtonRole"]], + [{"name": "canvas"}, ["CanvasRole"]], + [{"name": "caption"}, ["CaptionRole"]], + [{"name": "td"}, ["CellRole"]], + [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, ["CheckBoxRole", "SwitchRole"]], + [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}, ["ColorWellRole"]], + [{"name": "th"}, ["ColumnHeaderRole"]], + [{"name": "select"}, ["ComboBoxRole", "ListBoxRole"]], + [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}, ["DateRole"]], + [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}, ["DateTimeRole"]], + [{"name": "dfn"}, ["DefinitionRole"]], + [{"name": "dd"}, ["DescriptionListDetailRole"]], + [{"name": "dl"}, ["DescriptionListRole"]], + [{"name": "dt"}, ["DescriptionListTermRole"]], + [{"name": "details"}, ["DetailsRole"]], + [{"name": "dialog"}, ["DialogRole"]], + [{"name": "dir"}, ["DirectoryRole"]], + [{"attributes": [{"name": "open", "value": "open"}], "constraints": ["scoped to a details element"], "name": "summary"}, ["DisclosureTriangleRole"]], + [{"attributes": [{"name": "aria-expanded"}], "constraints": ["scoped to a details element"], "name": "summary"}, ["DisclosureTriangleRole"]], + [{"name": "div"}, ["DivRole"]], + [{"name": "embed"}, ["EmbeddedObjectRole"]], + [{"name": "figcaption"}, ["FigcaptionRole"]], + [{"name": "figure"}, ["FigureRole"]], + [{"name": "footer"}, ["FooterRole"]], + [{"name": "form"}, ["FormRole"]], + [{"name": "h1"}, ["HeadingRole"]], + [{"name": "h2"}, ["HeadingRole"]], + [{"name": "h3"}, ["HeadingRole"]], + [{"name": "h4"}, ["HeadingRole"]], + [{"name": "h5"}, ["HeadingRole"]], + [{"name": "h6"}, ["HeadingRole"]], + [{"name": "iframe"}, ["IframeRole"]], + [{"attributes": [{"name": "usemap"}], "name": "img"}, ["ImageMapRole"]], + [{"name": "img"}, ["ImageRole"]], + [{"name": "input"}, ["InlineTextBoxRole", "TextFieldRole"]], + [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}, ["InputTimeRole"]], + [{"name": "label"}, ["LabelRole"]], + [{"name": "legend"}, ["LegendRole"]], + [{"name": "br"}, ["LineBreakRole"]], + [{"attributes": [{"name": "href"}], "name": "a"}, ["LinkRole"]], + [{"name": "option"}, ["ListBoxOptionRole"]], + [{"name": "datalist"}, ["ListBoxRole"]], + [{"name": "select"}, ["ComboBoxRole", "ListBoxRole"]], + [{"name": "li"}, ["ListItemRole"]], + [{"name": "ul"}, ["ListRole"]], + [{"name": "ol"}, ["ListRole"]], + [{"name": "main"}, ["MainRole"]], + [{"name": "mark"}, ["MarkRole"]], + [{"name": "marquee"}, ["MarqueeRole"]], + [{"name": "menuitem"}, ["MenuItemRole"]], + [{"name": "menu"}, ["MenuRole"]], + [{"name": "meter"}, ["MeterRole"]], + [{"name": "nav"}, ["NavigationRole"]], + [{"name": "p"}, ["ParagraphRole"]], + [{"name": "pre"}, ["PreRole"]], + [{"name": "progress"}, ["ProgressIndicatorRole"]], + [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}, ["RadioButtonRole"]], + [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}, ["RowHeaderRole"]], + [{"name": "tr"}, ["RowRole"]], + [{"name": "ruby"}, ["RubyRole"]], + [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}, ["SearchBoxRole"]], + [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}, ["SliderRole"]], + [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}, ["SpinButtonRole"]], + [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, ["CheckBoxRole", "SwitchRole"]], + [{"name": "table"}, ["TableRole"]], + [{"name": "textarea"}, ["TextAreaRole"]], + [{"name": "input"}, ["InlineTextBoxRole", "TextFieldRole"]], + [{"attributes": [{"name": "type", "value": "text"}], "name": "input"}, ["TextFieldRole"]], + [{"name": "time"}, ["TimeRole"]], + [{"name": "video"}, ["VideoRole"]], +]; + describe('elementAXObjectMap', function () { describe('iteration', function () { it('should have an iterator defined', function () { expect(elementAXObjectMap[Symbol.iterator]).toBeDefined(); }); - it('should support the spread operator', function () { - expect([...elementAXObjectMap].length).toEqual(69); - expect([...elementAXObjectMap]).toEqual( - expect.arrayContaining( - [ - [{"name": "abbr"}, ["AbbrRole"]], - [{"name": "article"}, ["ArticleRole"]], - [{"name": "audio"}, ["AudioRole"]], - [{"name": "blockquote"}, ["BlockquoteRole"]], - [{"name": "button"}, ["ButtonRole"]], - [{"name": "canvas"}, ["CanvasRole"]], - [{"name": "caption"}, ["CaptionRole"]], - [{"name": "td"}, ["CellRole"]], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, ["CheckBoxRole", "SwitchRole"]], - [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}, ["ColorWellRole"]], - [{"name": "th"}, ["ColumnHeaderRole"]], - [{"name": "select"}, ["ComboBoxRole", "ListBoxRole"]], - [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}, ["DateRole"]], - [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}, ["DateTimeRole"]], - [{"name": "dfn"}, ["DefinitionRole"]], - [{"name": "dd"}, ["DescriptionListDetailRole"]], - [{"name": "dl"}, ["DescriptionListRole"]], - [{"name": "dt"}, ["DescriptionListTermRole"]], - [{"name": "details"}, ["DetailsRole"]], - [{"name": "dialog"}, ["DialogRole"]], - [{"name": "dir"}, ["DirectoryRole"]], - [{"name": "summary"}, ["DisclosureTriangleRole"]], - [{"name": "div"}, ["DivRole"]], - [{"name": "embed"}, ["EmbeddedObjectRole"]], - [{"name": "figcaption"}, ["FigcaptionRole"]], - [{"name": "figure"}, ["FigureRole"]], - [{"name": "footer"}, ["FooterRole"]], - [{"name": "form"}, ["FormRole"]], - [{"name": "h1"}, ["HeadingRole"]], - [{"name": "h2"}, ["HeadingRole"]], - [{"name": "h3"}, ["HeadingRole"]], - [{"name": "h4"}, ["HeadingRole"]], - [{"name": "h5"}, ["HeadingRole"]], - [{"name": "h6"}, ["HeadingRole"]], - [{"name": "iframe"}, ["IframeRole"]], - [{"attributes": [{"name": "usemap"}], "name": "img"}, ["ImageMapRole"]], - [{"name": "img"}, ["ImageRole"]], - [{"name": "input"}, ["InlineTextBoxRole", "TextFieldRole"]], - [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}, ["InputTimeRole"]], - [{"name": "label"}, ["LabelRole"]], - [{"name": "legend"}, ["LegendRole"]], - [{"name": "br"}, ["LineBreakRole"]], - [{"attributes": [{"name": "href"}], "name": "a"}, ["LinkRole"]], - [{"name": "option"}, ["ListBoxOptionRole"]], - [{"name": "datalist"}, ["ListBoxRole"]], - [{"name": "select"}, ["ComboBoxRole", "ListBoxRole"]], - [{"name": "li"}, ["ListItemRole"]], - [{"name": "ul"}, ["ListRole"]], - [{"name": "ol"}, ["ListRole"]], - [{"name": "main"}, ["MainRole"]], - [{"name": "mark"}, ["MarkRole"]], - [{"name": "marquee"}, ["MarqueeRole"]], - [{"name": "menuitem"}, ["MenuItemRole"]], - [{"name": "menu"}, ["MenuRole"]], - [{"name": "meter"}, ["MeterRole"]], - [{"name": "nav"}, ["NavigationRole"]], - [{"name": "p"}, ["ParagraphRole"]], - [{"name": "pre"}, ["PreRole"]], - [{"name": "progress"}, ["ProgressIndicatorRole"]], - [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}, ["RadioButtonRole"]], - [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}, ["RowHeaderRole"]], - [{"name": "tr"}, ["RowRole"]], - [{"name": "ruby"}, ["RubyRole"]], - [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}, ["SearchBoxRole"]], - [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}, ["SliderRole"]], - [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}, ["SpinButtonRole"]], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, ["CheckBoxRole", "SwitchRole"]], - [{"name": "table"}, ["TableRole"]], - [{"name": "input"}, ["InlineTextBoxRole", "TextFieldRole"]], - [{"attributes": [{"name": "type", "value": "text"}], "name": "input"}, ["TextFieldRole"]], - [{"name": "time"}, ["TimeRole"]], - [{"name": "video"}, ["VideoRole"]], - ] - ) - ); + it('should have a specific length', function () { + expect([...elementAXObjectMap].length).toEqual(71); + }); + describe('should support the spread operator', function () { + test.each([...elementAXObjectMap])(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); - it('should support the for..of pattern', function () { + describe('should support the for..of pattern', function () { const output = []; for (const [key, value] of elementAXObjectMap) { output.push([key, value]); } - expect(output).toEqual( - expect.arrayContaining( - [ - [{"name": "abbr"}, ["AbbrRole"]], - [{"name": "article"}, ["ArticleRole"]], - [{"name": "audio"}, ["AudioRole"]], - [{"name": "blockquote"}, ["BlockquoteRole"]], - [{"name": "button"}, ["ButtonRole"]], - [{"name": "canvas"}, ["CanvasRole"]], - [{"name": "caption"}, ["CaptionRole"]], - [{"name": "td"}, ["CellRole"]], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, ["CheckBoxRole", "SwitchRole"]], - [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}, ["ColorWellRole"]], - [{"name": "th"}, ["ColumnHeaderRole"]], - [{"name": "select"}, ["ComboBoxRole", "ListBoxRole"]], - [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}, ["DateRole"]], - [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}, ["DateTimeRole"]], - [{"name": "dfn"}, ["DefinitionRole"]], - [{"name": "dd"}, ["DescriptionListDetailRole"]], - [{"name": "dl"}, ["DescriptionListRole"]], - [{"name": "dt"}, ["DescriptionListTermRole"]], - [{"name": "details"}, ["DetailsRole"]], - [{"name": "dialog"}, ["DialogRole"]], - [{"name": "dir"}, ["DirectoryRole"]], - [{"name": "summary"}, ["DisclosureTriangleRole"]], - [{"name": "div"}, ["DivRole"]], - [{"name": "embed"}, ["EmbeddedObjectRole"]], - [{"name": "figcaption"}, ["FigcaptionRole"]], - [{"name": "figure"}, ["FigureRole"]], - [{"name": "footer"}, ["FooterRole"]], - [{"name": "form"}, ["FormRole"]], - [{"name": "h1"}, ["HeadingRole"]], - [{"name": "h2"}, ["HeadingRole"]], - [{"name": "h3"}, ["HeadingRole"]], - [{"name": "h4"}, ["HeadingRole"]], - [{"name": "h5"}, ["HeadingRole"]], - [{"name": "h6"}, ["HeadingRole"]], - [{"name": "iframe"}, ["IframeRole"]], - [{"attributes": [{"name": "usemap"}], "name": "img"}, ["ImageMapRole"]], - [{"name": "img"}, ["ImageRole"]], - [{"name": "input"}, ["InlineTextBoxRole", "TextFieldRole"]], - [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}, ["InputTimeRole"]], - [{"name": "label"}, ["LabelRole"]], - [{"name": "legend"}, ["LegendRole"]], - [{"name": "br"}, ["LineBreakRole"]], - [{"attributes": [{"name": "href"}], "name": "a"}, ["LinkRole"]], - [{"name": "option"}, ["ListBoxOptionRole"]], - [{"name": "datalist"}, ["ListBoxRole"]], - [{"name": "select"}, ["ComboBoxRole", "ListBoxRole"]], - [{"name": "li"}, ["ListItemRole"]], - [{"name": "ul"}, ["ListRole"]], - [{"name": "ol"}, ["ListRole"]], - [{"name": "main"}, ["MainRole"]], - [{"name": "mark"}, ["MarkRole"]], - [{"name": "marquee"}, ["MarqueeRole"]], - [{"name": "menuitem"}, ["MenuItemRole"]], - [{"name": "menu"}, ["MenuRole"]], - [{"name": "meter"}, ["MeterRole"]], - [{"name": "nav"}, ["NavigationRole"]], - [{"name": "p"}, ["ParagraphRole"]], - [{"name": "pre"}, ["PreRole"]], - [{"name": "progress"}, ["ProgressIndicatorRole"]], - [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}, ["RadioButtonRole"]], - [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}, ["RowHeaderRole"]], - [{"name": "tr"}, ["RowRole"]], - [{"name": "ruby"}, ["RubyRole"]], - [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}, ["SearchBoxRole"]], - [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}, ["SliderRole"]], - [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}, ["SpinButtonRole"]], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, ["CheckBoxRole", "SwitchRole"]], - [{"name": "table"}, ["TableRole"]], - [{"name": "input"}, ["InlineTextBoxRole", "TextFieldRole"]], - [{"attributes": [{"name": "type", "value": "text"}], "name": "input"}, ["TextFieldRole"]], - [{"name": "time"}, ["TimeRole"]], - [{"name": "video"}, ["VideoRole"]] - ] - ) - ); + test.each(output)(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); - it('should support one-by-one iteration withe the next method', function () { + it('should support one-by-one iteration with the next method', function () { const iter = elementAXObjectMap[Symbol.iterator](); const item =iter.next(); expect(item.value).toBeDefined(); @@ -180,165 +113,19 @@ describe('elementAXObjectMap', function () { }); }); describe('content', function () { - it('entries(), iteration', function () { - expect(elementAXObjectMap.entries()).toEqual( - expect.arrayContaining( - [ - [{"name": "abbr"}, ["AbbrRole"]], - [{"name": "article"}, ["ArticleRole"]], - [{"name": "audio"}, ["AudioRole"]], - [{"name": "blockquote"}, ["BlockquoteRole"]], - [{"name": "button"}, ["ButtonRole"]], - [{"name": "canvas"}, ["CanvasRole"]], - [{"name": "caption"}, ["CaptionRole"]], - [{"name": "td"}, ["CellRole"]], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, ["CheckBoxRole", "SwitchRole"]], - [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}, ["ColorWellRole"]], - [{"name": "th"}, ["ColumnHeaderRole"]], - [{"name": "select"}, ["ComboBoxRole", "ListBoxRole"]], - [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}, ["DateRole"]], - [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}, ["DateTimeRole"]], - [{"name": "dfn"}, ["DefinitionRole"]], - [{"name": "dd"}, ["DescriptionListDetailRole"]], - [{"name": "dl"}, ["DescriptionListRole"]], - [{"name": "dt"}, ["DescriptionListTermRole"]], - [{"name": "details"}, ["DetailsRole"]], - [{"name": "dialog"}, ["DialogRole"]], - [{"name": "dir"}, ["DirectoryRole"]], - [{"name": "summary"}, ["DisclosureTriangleRole"]], - [{"name": "div"}, ["DivRole"]], - [{"name": "embed"}, ["EmbeddedObjectRole"]], - [{"name": "figcaption"}, ["FigcaptionRole"]], - [{"name": "figure"}, ["FigureRole"]], - [{"name": "footer"}, ["FooterRole"]], - [{"name": "form"}, ["FormRole"]], - [{"name": "h1"}, ["HeadingRole"]], - [{"name": "h2"}, ["HeadingRole"]], - [{"name": "h3"}, ["HeadingRole"]], - [{"name": "h4"}, ["HeadingRole"]], - [{"name": "h5"}, ["HeadingRole"]], - [{"name": "h6"}, ["HeadingRole"]], - [{"name": "iframe"}, ["IframeRole"]], - [{"attributes": [{"name": "usemap"}], "name": "img"}, ["ImageMapRole"]], - [{"name": "img"}, ["ImageRole"]], - [{"name": "input"}, ["InlineTextBoxRole", "TextFieldRole"]], - [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}, ["InputTimeRole"]], - [{"name": "label"}, ["LabelRole"]], - [{"name": "legend"}, ["LegendRole"]], - [{"name": "br"}, ["LineBreakRole"]], - [{"attributes": [{"name": "href"}], "name": "a"}, ["LinkRole"]], - [{"name": "option"}, ["ListBoxOptionRole"]], - [{"name": "datalist"}, ["ListBoxRole"]], - [{"name": "select"}, ["ComboBoxRole", "ListBoxRole"]], - [{"name": "li"}, ["ListItemRole"]], - [{"name": "ul"}, ["ListRole"]], - [{"name": "ol"}, ["ListRole"]], - [{"name": "main"}, ["MainRole"]], - [{"name": "mark"}, ["MarkRole"]], - [{"name": "marquee"}, ["MarqueeRole"]], - [{"name": "menuitem"}, ["MenuItemRole"]], - [{"name": "menu"}, ["MenuRole"]], - [{"name": "meter"}, ["MeterRole"]], - [{"name": "nav"}, ["NavigationRole"]], - [{"name": "p"}, ["ParagraphRole"]], - [{"name": "pre"}, ["PreRole"]], - [{"name": "progress"}, ["ProgressIndicatorRole"]], - [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}, ["RadioButtonRole"]], - [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}, ["RowHeaderRole"]], - [{"name": "tr"}, ["RowRole"]], - [{"name": "ruby"}, ["RubyRole"]], - [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}, ["SearchBoxRole"]], - [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}, ["SliderRole"]], - [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}, ["SpinButtonRole"]], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, ["CheckBoxRole", "SwitchRole"]], - [{"name": "table"}, ["TableRole"]], - [{"name": "input"}, ["InlineTextBoxRole", "TextFieldRole"]], - [{"attributes": [{"name": "type", "value": "text"}], "name": "input"}, ["TextFieldRole"]], - [{"name": "time"}, ["TimeRole"]], - [{"name": "video"}, ["VideoRole"]], - ] - ) - ); - expect([...elementAXObjectMap.entries()]).toEqual( - expect.arrayContaining( - [ - [{"name": "abbr"}, ["AbbrRole"]], - [{"name": "article"}, ["ArticleRole"]], - [{"name": "audio"}, ["AudioRole"]], - [{"name": "blockquote"}, ["BlockquoteRole"]], - [{"name": "button"}, ["ButtonRole"]], - [{"name": "canvas"}, ["CanvasRole"]], - [{"name": "caption"}, ["CaptionRole"]], - [{"name": "td"}, ["CellRole"]], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, ["CheckBoxRole", "SwitchRole"]], - [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}, ["ColorWellRole"]], - [{"name": "th"}, ["ColumnHeaderRole"]], - [{"name": "select"}, ["ComboBoxRole", "ListBoxRole"]], - [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}, ["DateRole"]], - [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}, ["DateTimeRole"]], - [{"name": "dfn"}, ["DefinitionRole"]], - [{"name": "dd"}, ["DescriptionListDetailRole"]], - [{"name": "dl"}, ["DescriptionListRole"]], - [{"name": "dt"}, ["DescriptionListTermRole"]], - [{"name": "details"}, ["DetailsRole"]], - [{"name": "dialog"}, ["DialogRole"]], - [{"name": "dir"}, ["DirectoryRole"]], - [{"name": "summary"}, ["DisclosureTriangleRole"]], - [{"name": "div"}, ["DivRole"]], - [{"name": "embed"}, ["EmbeddedObjectRole"]], - [{"name": "figcaption"}, ["FigcaptionRole"]], - [{"name": "figure"}, ["FigureRole"]], - [{"name": "footer"}, ["FooterRole"]], - [{"name": "form"}, ["FormRole"]], - [{"name": "h1"}, ["HeadingRole"]], - [{"name": "h2"}, ["HeadingRole"]], - [{"name": "h3"}, ["HeadingRole"]], - [{"name": "h4"}, ["HeadingRole"]], - [{"name": "h5"}, ["HeadingRole"]], - [{"name": "h6"}, ["HeadingRole"]], - [{"name": "iframe"}, ["IframeRole"]], - [{"attributes": [{"name": "usemap"}], "name": "img"}, ["ImageMapRole"]], - [{"name": "img"}, ["ImageRole"]], - [{"name": "input"}, ["InlineTextBoxRole", "TextFieldRole"]], - [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}, ["InputTimeRole"]], - [{"name": "label"}, ["LabelRole"]], - [{"name": "legend"}, ["LegendRole"]], - [{"name": "br"}, ["LineBreakRole"]], - [{"attributes": [{"name": "href"}], "name": "a"}, ["LinkRole"]], - [{"name": "option"}, ["ListBoxOptionRole"]], - [{"name": "datalist"}, ["ListBoxRole"]], - [{"name": "select"}, ["ComboBoxRole", "ListBoxRole"]], - [{"name": "li"}, ["ListItemRole"]], - [{"name": "ul"}, ["ListRole"]], - [{"name": "ol"}, ["ListRole"]], - [{"name": "main"}, ["MainRole"]], - [{"name": "mark"}, ["MarkRole"]], - [{"name": "marquee"}, ["MarqueeRole"]], - [{"name": "menuitem"}, ["MenuItemRole"]], - [{"name": "menu"}, ["MenuRole"]], - [{"name": "meter"}, ["MeterRole"]], - [{"name": "nav"}, ["NavigationRole"]], - [{"name": "p"}, ["ParagraphRole"]], - [{"name": "pre"}, ["PreRole"]], - [{"name": "progress"}, ["ProgressIndicatorRole"]], - [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}, ["RadioButtonRole"]], - [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}, ["RowHeaderRole"]], - [{"name": "tr"}, ["RowRole"]], - [{"name": "ruby"}, ["RubyRole"]], - [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}, ["SearchBoxRole"]], - [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}, ["SliderRole"]], - [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}, ["SpinButtonRole"]], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, ["CheckBoxRole", "SwitchRole"]], - [{"name": "table"}, ["TableRole"]], - [{"name": "input"}, ["InlineTextBoxRole", "TextFieldRole"]], - [{"attributes": [{"name": "type", "value": "text"}], "name": "input"}, ["TextFieldRole"]], - [{"name": "time"}, ["TimeRole"]], - [{"name": "video"}, ["VideoRole"]], - ] - ) - ); + describe('entries(), iteration', function () { + test.each(elementAXObjectMap.entries())(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); + test.each([...elementAXObjectMap.entries()])(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); - it('forEach()', function () { + describe('forEach()', function () { const output = []; let context; elementAXObjectMap.forEach((value, key, map) => { @@ -347,162 +134,16 @@ describe('elementAXObjectMap', function () { context = map; } }); - expect(output).toEqual( - expect.arrayContaining( - [ - [{"name": "abbr"}, ["AbbrRole"]], - [{"name": "article"}, ["ArticleRole"]], - [{"name": "audio"}, ["AudioRole"]], - [{"name": "blockquote"}, ["BlockquoteRole"]], - [{"name": "button"}, ["ButtonRole"]], - [{"name": "canvas"}, ["CanvasRole"]], - [{"name": "caption"}, ["CaptionRole"]], - [{"name": "td"}, ["CellRole"]], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, ["CheckBoxRole", "SwitchRole"]], - [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}, ["ColorWellRole"]], - [{"name": "th"}, ["ColumnHeaderRole"]], - [{"name": "select"}, ["ComboBoxRole", "ListBoxRole"]], - [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}, ["DateRole"]], - [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}, ["DateTimeRole"]], - [{"name": "dfn"}, ["DefinitionRole"]], - [{"name": "dd"}, ["DescriptionListDetailRole"]], - [{"name": "dl"}, ["DescriptionListRole"]], - [{"name": "dt"}, ["DescriptionListTermRole"]], - [{"name": "details"}, ["DetailsRole"]], - [{"name": "dialog"}, ["DialogRole"]], - [{"name": "dir"}, ["DirectoryRole"]], - [{"name": "summary"}, ["DisclosureTriangleRole"]], - [{"name": "div"}, ["DivRole"]], - [{"name": "embed"}, ["EmbeddedObjectRole"]], - [{"name": "figcaption"}, ["FigcaptionRole"]], - [{"name": "figure"}, ["FigureRole"]], - [{"name": "footer"}, ["FooterRole"]], - [{"name": "form"}, ["FormRole"]], - [{"name": "h1"}, ["HeadingRole"]], - [{"name": "h2"}, ["HeadingRole"]], - [{"name": "h3"}, ["HeadingRole"]], - [{"name": "h4"}, ["HeadingRole"]], - [{"name": "h5"}, ["HeadingRole"]], - [{"name": "h6"}, ["HeadingRole"]], - [{"name": "iframe"}, ["IframeRole"]], - [{"attributes": [{"name": "usemap"}], "name": "img"}, ["ImageMapRole"]], - [{"name": "img"}, ["ImageRole"]], - [{"name": "input"}, ["InlineTextBoxRole", "TextFieldRole"]], - [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}, ["InputTimeRole"]], - [{"name": "label"}, ["LabelRole"]], - [{"name": "legend"}, ["LegendRole"]], - [{"name": "br"}, ["LineBreakRole"]], - [{"attributes": [{"name": "href"}], "name": "a"}, ["LinkRole"]], - [{"name": "option"}, ["ListBoxOptionRole"]], - [{"name": "datalist"}, ["ListBoxRole"]], - [{"name": "select"}, ["ComboBoxRole", "ListBoxRole"]], - [{"name": "li"}, ["ListItemRole"]], - [{"name": "ul"}, ["ListRole"]], - [{"name": "ol"}, ["ListRole"]], - [{"name": "main"}, ["MainRole"]], - [{"name": "mark"}, ["MarkRole"]], - [{"name": "marquee"}, ["MarqueeRole"]], - [{"name": "menuitem"}, ["MenuItemRole"]], - [{"name": "menu"}, ["MenuRole"]], - [{"name": "meter"}, ["MeterRole"]], - [{"name": "nav"}, ["NavigationRole"]], - [{"name": "p"}, ["ParagraphRole"]], - [{"name": "pre"}, ["PreRole"]], - [{"name": "progress"}, ["ProgressIndicatorRole"]], - [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}, ["RadioButtonRole"]], - [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}, ["RowHeaderRole"]], - [{"name": "tr"}, ["RowRole"]], - [{"name": "ruby"}, ["RubyRole"]], - [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}, ["SearchBoxRole"]], - [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}, ["SliderRole"]], - [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}, ["SpinButtonRole"]], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, ["CheckBoxRole", "SwitchRole"]], - [{"name": "table"}, ["TableRole"]], - [{"name": "input"}, ["InlineTextBoxRole", "TextFieldRole"]], - [{"attributes": [{"name": "type", "value": "text"}], "name": "input"}, ["TextFieldRole"]], - [{"name": "time"}, ["TimeRole"]], - [{"name": "video"}, ["VideoRole"]] - ] - ) - ); - expect(context).toEqual( - expect.arrayContaining( - [ - [{"name": "abbr"}, ["AbbrRole"]], - [{"name": "article"}, ["ArticleRole"]], - [{"name": "audio"}, ["AudioRole"]], - [{"name": "blockquote"}, ["BlockquoteRole"]], - [{"name": "button"}, ["ButtonRole"]], - [{"name": "canvas"}, ["CanvasRole"]], - [{"name": "caption"}, ["CaptionRole"]], - [{"name": "td"}, ["CellRole"]], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, ["CheckBoxRole", "SwitchRole"]], - [{"attributes": [{"name": "type", "value": "color"}], "name": "input"}, ["ColorWellRole"]], - [{"name": "th"}, ["ColumnHeaderRole"]], - [{"name": "select"}, ["ComboBoxRole", "ListBoxRole"]], - [{"attributes": [{"name": "type", "value": "date"}], "name": "input"}, ["DateRole"]], - [{"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}, ["DateTimeRole"]], - [{"name": "dfn"}, ["DefinitionRole"]], - [{"name": "dd"}, ["DescriptionListDetailRole"]], - [{"name": "dl"}, ["DescriptionListRole"]], - [{"name": "dt"}, ["DescriptionListTermRole"]], - [{"name": "details"}, ["DetailsRole"]], - [{"name": "dialog"}, ["DialogRole"]], - [{"name": "dir"}, ["DirectoryRole"]], - [{"name": "summary"}, ["DisclosureTriangleRole"]], - [{"name": "div"}, ["DivRole"]], - [{"name": "embed"}, ["EmbeddedObjectRole"]], - [{"name": "figcaption"}, ["FigcaptionRole"]], - [{"name": "figure"}, ["FigureRole"]], - [{"name": "footer"}, ["FooterRole"]], - [{"name": "form"}, ["FormRole"]], - [{"name": "h1"}, ["HeadingRole"]], - [{"name": "h2"}, ["HeadingRole"]], - [{"name": "h3"}, ["HeadingRole"]], - [{"name": "h4"}, ["HeadingRole"]], - [{"name": "h5"}, ["HeadingRole"]], - [{"name": "h6"}, ["HeadingRole"]], - [{"name": "iframe"}, ["IframeRole"]], - [{"attributes": [{"name": "usemap"}], "name": "img"}, ["ImageMapRole"]], - [{"name": "img"}, ["ImageRole"]], - [{"name": "input"}, ["InlineTextBoxRole", "TextFieldRole"]], - [{"attributes": [{"name": "type", "value": "time"}], "name": "input"}, ["InputTimeRole"]], - [{"name": "label"}, ["LabelRole"]], - [{"name": "legend"}, ["LegendRole"]], - [{"name": "br"}, ["LineBreakRole"]], - [{"attributes": [{"name": "href"}], "name": "a"}, ["LinkRole"]], - [{"name": "option"}, ["ListBoxOptionRole"]], - [{"name": "datalist"}, ["ListBoxRole"]], - [{"name": "select"}, ["ComboBoxRole", "ListBoxRole"]], - [{"name": "li"}, ["ListItemRole"]], - [{"name": "ul"}, ["ListRole"]], - [{"name": "ol"}, ["ListRole"]], - [{"name": "main"}, ["MainRole"]], - [{"name": "mark"}, ["MarkRole"]], - [{"name": "marquee"}, ["MarqueeRole"]], - [{"name": "menuitem"}, ["MenuItemRole"]], - [{"name": "menu"}, ["MenuRole"]], - [{"name": "meter"}, ["MeterRole"]], - [{"name": "nav"}, ["NavigationRole"]], - [{"name": "p"}, ["ParagraphRole"]], - [{"name": "pre"}, ["PreRole"]], - [{"name": "progress"}, ["ProgressIndicatorRole"]], - [{"attributes": [{"name": "type", "value": "radio"}], "name": "input"}, ["RadioButtonRole"]], - [{"attributes": [{"name": "scope", "value": "row"}], "name": "th"}, ["RowHeaderRole"]], - [{"name": "tr"}, ["RowRole"]], - [{"name": "ruby"}, ["RubyRole"]], - [{"attributes": [{"name": "type", "value": "search"}], "name": "input"}, ["SearchBoxRole"]], - [{"attributes": [{"name": "type", "value": "range"}], "name": "input"}, ["SliderRole"]], - [{"attributes": [{"name": "type", "value": "number"}], "name": "input"}, ["SpinButtonRole"]], - [{"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, ["CheckBoxRole", "SwitchRole"]], - [{"name": "table"}, ["TableRole"]], - [{"name": "input"}, ["InlineTextBoxRole", "TextFieldRole"]], - [{"attributes": [{"name": "type", "value": "text"}], "name": "input"}, ["TextFieldRole"]], - [{"name": "time"}, ["TimeRole"]], - [{"name": "video"}, ["VideoRole"]] - ] - ) - ); + test.each(output)(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); + test.each(context)(`Testing role: '%s' with element %o`, (role, elements) => { + expect(entriesList).toEqual( + expect.arrayContaining([[role, elements]]), + ); + }); }); it('get()', function () { expect(elementAXObjectMap.get({'name': 'abbr'})).toEqual(["AbbrRole"]); @@ -526,7 +167,8 @@ describe('elementAXObjectMap', function () { expect(elementAXObjectMap.get({"name": "details"})).toEqual(["DetailsRole"]); expect(elementAXObjectMap.get({"name": "dialog"})).toEqual(["DialogRole"]); expect(elementAXObjectMap.get({"name": "dir"})).toEqual(["DirectoryRole"]); - expect(elementAXObjectMap.get({"name": "summary"})).toEqual(["DisclosureTriangleRole"]); + expect(elementAXObjectMap.get({"attributes": [{"name": "open", "value": "open"}], "name": "summary"})).toEqual(["DisclosureTriangleRole"]), + expect(elementAXObjectMap.get({"attributes": [{"name": "aria-expanded"}], "name": "summary"})).toEqual(["DisclosureTriangleRole"]), expect(elementAXObjectMap.get({"name": "div"})).toEqual(["DivRole"]); expect(elementAXObjectMap.get({"name": "embed"})).toEqual(["EmbeddedObjectRole"]); expect(elementAXObjectMap.get({"name": "figcaption"})).toEqual(["FigcaptionRole"]); @@ -582,321 +224,31 @@ describe('elementAXObjectMap', function () { expect(elementAXObjectMap.has({"attributes": [{"name": "type", "value": "radio"}], "name": "input"})).toEqual(true); expect(elementAXObjectMap.has({"attributes": [{"name": "type", "value": "tv"}], "name": "input"})).toEqual(false); }); - it('keys(), iteration', function() { - expect(elementAXObjectMap.keys()).toEqual( - expect.arrayContaining( - [ - {"name": "abbr"}, - {"name": "article"}, - {"name": "audio"}, - {"name": "blockquote"}, - {"name": "button"}, - {"name": "canvas"}, - {"name": "caption"}, - {"name": "td"}, - {"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, - {"attributes": [{"name": "type", "value": "color"}], "name": "input"}, - {"name": "th"}, - {"name": "select"}, - {"attributes": [{"name": "type", "value": "date"}], "name": "input"}, - {"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}, - {"name": "dfn"}, - {"name": "dd"}, - {"name": "dl"}, - {"name": "dt"}, - {"name": "details"}, - {"name": "dialog"}, - {"name": "dir"}, - {"name": "summary"}, - {"name": "div"}, - {"name": "embed"}, - {"name": "figcaption"}, - {"name": "figure"}, - {"name": "footer"}, - {"name": "form"}, - {"name": "h1"}, - {"name": "h2"}, - {"name": "h3"}, - {"name": "h4"}, - {"name": "h5"}, - {"name": "h6"}, - {"name": "iframe"}, - {"attributes": [{"name": "usemap"}], "name": "img"}, - {"name": "img"}, - {"name": "input"}, - {"attributes": [{"name": "type", "value": "time"}], "name": "input"}, - {"name": "label"}, - {"name": "legend"}, - {"name": "br"}, - {"attributes": [{"name": "href"}], "name": "a"}, - {"name": "option"}, - {"name": "datalist"}, - {"name": "select"}, - {"name": "li"}, - {"name": "ul"}, - {"name": "ol"}, - {"name": "main"}, - {"name": "mark"}, - {"name": "marquee"}, - {"name": "menuitem"}, - {"name": "menu"}, - {"name": "meter"}, - {"name": "nav"}, - {"name": "p"}, - {"name": "pre"}, - {"name": "progress"}, - {"attributes": [{"name": "type", "value": "radio"}], "name": "input"}, - {"attributes": [{"name": "scope", "value": "row"}], "name": "th"}, - {"name": "tr"}, - {"name": "ruby"}, - {"attributes": [{"name": "type", "value": "search"}], "name": "input"}, - {"attributes": [{"name": "type", "value": "range"}], "name": "input"}, - {"attributes": [{"name": "type", "value": "number"}], "name": "input"}, - {"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, - {"name": "table"}, - {"name": "input"}, - {"attributes": [{"name": "type", "value": "text"}], "name": "input"}, - {"name": "time"}, - {"name": "video"}, - ] - ) - ); - expect([...elementAXObjectMap.keys()]).toEqual( - expect.arrayContaining( - [ - {"name": "abbr"}, - {"name": "article"}, - {"name": "audio"}, - {"name": "blockquote"}, - {"name": "button"}, - {"name": "canvas"}, - {"name": "caption"}, - {"name": "td"}, - {"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, - {"attributes": [{"name": "type", "value": "color"}], "name": "input"}, - {"name": "th"}, - {"name": "select"}, - {"attributes": [{"name": "type", "value": "date"}], "name": "input"}, - {"attributes": [{"name": "type", "value": "datetime"}], "name": "input"}, - {"name": "dfn"}, - {"name": "dd"}, - {"name": "dl"}, - {"name": "dt"}, - {"name": "details"}, - {"name": "dialog"}, - {"name": "dir"}, - {"name": "summary"}, - {"name": "div"}, - {"name": "embed"}, - {"name": "figcaption"}, - {"name": "figure"}, - {"name": "footer"}, - {"name": "form"}, - {"name": "h1"}, - {"name": "h2"}, - {"name": "h3"}, - {"name": "h4"}, - {"name": "h5"}, - {"name": "h6"}, - {"name": "iframe"}, - {"attributes": [{"name": "usemap"}], "name": "img"}, - {"name": "img"}, - {"name": "input"}, - {"attributes": [{"name": "type", "value": "time"}], "name": "input"}, - {"name": "label"}, - {"name": "legend"}, - {"name": "br"}, - {"attributes": [{"name": "href"}], "name": "a"}, - {"name": "option"}, - {"name": "datalist"}, - {"name": "select"}, - {"name": "li"}, - {"name": "ul"}, - {"name": "ol"}, - {"name": "main"}, - {"name": "mark"}, - {"name": "marquee"}, - {"name": "menuitem"}, - {"name": "menu"}, - {"name": "meter"}, - {"name": "nav"}, - {"name": "p"}, - {"name": "pre"}, - {"name": "progress"}, - {"attributes": [{"name": "type", "value": "radio"}], "name": "input"}, - {"attributes": [{"name": "scope", "value": "row"}], "name": "th"}, - {"name": "tr"}, - {"name": "ruby"}, - {"attributes": [{"name": "type", "value": "search"}], "name": "input"}, - {"attributes": [{"name": "type", "value": "range"}], "name": "input"}, - {"attributes": [{"name": "type", "value": "number"}], "name": "input"}, - {"attributes": [{"name": "type", "value": "checkbox"}], "name": "input"}, - {"name": "table"}, - {"name": "input"}, - {"attributes": [{"name": "type", "value": "text"}], "name": "input"}, - {"name": "time"}, - {"name": "video"}, - ] - ) - ); + describe('keys(), iteration', function() { + const entriesKeys = entriesList.map(entry => entry[0]); + test.each(elementAXObjectMap.keys())('Testing key: %o', (key) => { + expect(entriesKeys).toEqual( + expect.arrayContaining([key]), + ); + }); + test.each([...elementAXObjectMap.keys()])('Testing key: %o', (key) => { + expect(entriesKeys).toEqual( + expect.arrayContaining([key]), + ); + }); }); - it('values(), iteration', function() { - expect(elementAXObjectMap.values()).toEqual( - expect.arrayContaining( - [ - ["AbbrRole"], - ["ArticleRole"], - ["AudioRole"], - ["BlockquoteRole"], - ["ButtonRole"], - ["CanvasRole"], - ["CaptionRole"], - ["CellRole"], - ["CheckBoxRole", "SwitchRole"], - ["ColorWellRole"], - ["ColumnHeaderRole"], - ["ComboBoxRole", "ListBoxRole"], - ["DateRole"], - ["DateTimeRole"], - ["DefinitionRole"], - ["DescriptionListDetailRole"], - ["DescriptionListRole"], - ["DescriptionListTermRole"], - ["DetailsRole"], - ["DialogRole"], - ["DirectoryRole"], - ["DisclosureTriangleRole"], - ["DivRole"], - ["EmbeddedObjectRole"], - ["FigcaptionRole"], - ["FigureRole"], - ["FooterRole"], - ["FormRole"], - ["HeadingRole"], - ["HeadingRole"], - ["HeadingRole"], - ["HeadingRole"], - ["HeadingRole"], - ["HeadingRole"], - ["IframeRole"], - ["ImageMapRole"], - ["ImageRole"], - ["InlineTextBoxRole", "TextFieldRole"], - ["InputTimeRole"], - ["LabelRole"], - ["LegendRole"], - ["LineBreakRole"], - ["LinkRole"], - ["ListBoxOptionRole"], - ["ListBoxRole"], - ["ComboBoxRole", "ListBoxRole"], - ["ListItemRole"], - ["ListRole"], - ["ListRole"], - ["MainRole"], - ["MarkRole"], - ["MarqueeRole"], - ["MenuItemRole"], - ["MenuRole"], - ["MeterRole"], - ["NavigationRole"], - ["ParagraphRole"], - ["PreRole"], - ["ProgressIndicatorRole"], - ["RadioButtonRole"], - ["RowHeaderRole"], - ["RowRole"], - ["RubyRole"], - ["SearchBoxRole"], - ["SliderRole"], - ["SpinButtonRole"], - ["CheckBoxRole", "SwitchRole"], - ["TableRole"], - ["InlineTextBoxRole", "TextFieldRole"], - ["TextFieldRole"], - ["TimeRole"], - ["VideoRole"], - ] - ) - ); - expect([...elementAXObjectMap.values()]).toEqual( - expect.arrayContaining( - [ - ["AbbrRole"], - ["ArticleRole"], - ["AudioRole"], - ["BlockquoteRole"], - ["ButtonRole"], - ["CanvasRole"], - ["CaptionRole"], - ["CellRole"], - ["CheckBoxRole", "SwitchRole"], - ["ColorWellRole"], - ["ColumnHeaderRole"], - ["ComboBoxRole", "ListBoxRole"], - ["DateRole"], - ["DateTimeRole"], - ["DefinitionRole"], - ["DescriptionListDetailRole"], - ["DescriptionListRole"], - ["DescriptionListTermRole"], - ["DetailsRole"], - ["DialogRole"], - ["DirectoryRole"], - ["DisclosureTriangleRole"], - ["DivRole"], - ["EmbeddedObjectRole"], - ["FigcaptionRole"], - ["FigureRole"], - ["FooterRole"], - ["FormRole"], - ["HeadingRole"], - ["HeadingRole"], - ["HeadingRole"], - ["HeadingRole"], - ["HeadingRole"], - ["HeadingRole"], - ["IframeRole"], - ["ImageMapRole"], - ["ImageRole"], - ["InlineTextBoxRole", "TextFieldRole"], - ["InputTimeRole"], - ["LabelRole"], - ["LegendRole"], - ["LineBreakRole"], - ["LinkRole"], - ["ListBoxOptionRole"], - ["ListBoxRole"], - ["ComboBoxRole", "ListBoxRole"], - ["ListItemRole"], - ["ListRole"], - ["ListRole"], - ["MainRole"], - ["MarkRole"], - ["MarqueeRole"], - ["MenuItemRole"], - ["MenuRole"], - ["MeterRole"], - ["NavigationRole"], - ["ParagraphRole"], - ["PreRole"], - ["ProgressIndicatorRole"], - ["RadioButtonRole"], - ["RowHeaderRole"], - ["RowRole"], - ["RubyRole"], - ["SearchBoxRole"], - ["SliderRole"], - ["SpinButtonRole"], - ["CheckBoxRole", "SwitchRole"], - ["TableRole"], - ["InlineTextBoxRole", "TextFieldRole"], - ["TextFieldRole"], - ["TimeRole"], - ["VideoRole"], - ] - ) - ); + describe('values(), iteration', function() { + const entriesValues = entriesList.map(entry => entry[1]); + test.each(elementAXObjectMap.values().map(value => [value]))('Testing value: %o', (value) => { + expect(entriesValues).toEqual( + expect.arrayContaining([value]), + ); + }); + test.each([...elementAXObjectMap.values()].map(value => [value]))('Testing value: %o', (value) => { + expect(entriesValues).toEqual( + expect.arrayContaining([value]), + ); + }); }); }); }); diff --git a/flow/axom.js b/flow/axom.js index efec0fa..0e149d6 100644 --- a/flow/axom.js +++ b/flow/axom.js @@ -2,28 +2,32 @@ * @flow */ -type AXObjectModelDefinition = { + + +type AXObjectModelDefinition = {| relatedConcepts: Array, type: 'window' | 'structure' | 'widget' | 'generic', -}; +|}; -type AXObjectModelRelation = { +type AXObjectModelRelation = {| module?: 'HTML' | 'ARIA', concept?: AXObjectModelRelationConcept, -}; +|}; /* The concept in a related domain that informs behavior mappings. * Related domains include: HTML and ARIA. */ -type AXObjectModelRelationConcept = { +type AXObjectModelRelationConcept = {| name?: string, attributes?: Array, -}; + constraints?: Array< + | 'scoped to a details element'>, +|}; -type AXObjectModelRelationConceptAttribute = { +type AXObjectModelRelationConceptAttribute = {| name: string, value?: string, -}; +|}; type AXObjectName = 'AbbrRole' @@ -137,6 +141,7 @@ type AXObjectName = | 'TabListRole' | 'TabPanelRole' | 'TermRole' +| 'TextAreaRole' | 'TextFieldRole' | 'TimeRole' | 'TimerRole' diff --git a/scripts/axmodel.json b/scripts/axmodel.json index b818e89..9d9baf4 100644 --- a/scripts/axmodel.json +++ b/scripts/axmodel.json @@ -390,6 +390,29 @@ { "module": "HTML", "concept": { + "attributes": [ + { + "name": "open", + "value": "open" + } + ], + "constraints": [ + "scoped to a details element" + ], + "name": "summary" + } + }, + { + "module": "HTML", + "concept": { + "attributes": [ + { + "name": "aria-expanded" + } + ], + "constraints": [ + "scoped to a details element" + ], "name": "summary" } } @@ -1351,6 +1374,29 @@ } ] }, + "TextAreaRole": { + "type": "widget", + "relatedConcepts": [ + { + "module": "ARIA", + "concept": { + "attributes": [ + { + "name": "aria-multiline", + "value": "true" + } + ], + "name": "textbox" + } + }, + { + "module": "HTML", + "concept": { + "name": "textarea" + } + } + ] + }, "TextFieldRole": { "type": "widget", "relatedConcepts": [ diff --git a/src/AXObjectsMap.js b/src/AXObjectsMap.js index 8b2f2b1..0c364ca 100644 --- a/src/AXObjectsMap.js +++ b/src/AXObjectsMap.js @@ -114,6 +114,7 @@ import TableRole from './etc/objects/TableRole'; import TabListRole from './etc/objects/TabListRole'; import TabPanelRole from './etc/objects/TabPanelRole'; import TermRole from './etc/objects/TermRole'; +import TextAreaRole from './etc/objects/TextAreaRole'; import TextFieldRole from './etc/objects/TextFieldRole'; import TimeRole from './etc/objects/TimeRole'; import TimerRole from './etc/objects/TimerRole'; @@ -242,6 +243,7 @@ const AXObjects: TAXObjects = [ ['TabListRole', TabListRole], ['TabPanelRole', TabPanelRole], ['TermRole', TermRole], + ['TextAreaRole', TextAreaRole], ['TextFieldRole', TextFieldRole], ['TimeRole', TimeRole], ['TimerRole', TimerRole], diff --git a/src/elementAXObjectMap.js b/src/elementAXObjectMap.js index ead3a16..f0a657e 100644 --- a/src/elementAXObjectMap.js +++ b/src/elementAXObjectMap.js @@ -65,7 +65,9 @@ const elementAXObjectMap: TAXObjectQueryMap< } }, get: function (key: AXObjectModelRelationConcept): ?Array { - const item = elementAXObjects.find(tuple => (deepEqual(key, tuple[0])) ? true : false); + const item = elementAXObjects.find(tuple => ( + key.name === tuple[0].name && deepEqual(key.attributes, tuple[0].attributes) + )); return item && item[1]; }, has: function (key: AXObjectModelRelationConcept): boolean { diff --git a/src/etc/objects/DisclosureTriangleRole.js b/src/etc/objects/DisclosureTriangleRole.js index 40e07e1..bbffa17 100644 --- a/src/etc/objects/DisclosureTriangleRole.js +++ b/src/etc/objects/DisclosureTriangleRole.js @@ -6,6 +6,29 @@ const DisclosureTriangleRole: AXObjectModelDefinition = { { module: 'HTML', concept: { + attributes: [ + { + name: 'open', + value: 'open', + }, + ], + constraints: [ + 'scoped to a details element', + ], + name: 'summary', + }, + }, + { + module: 'HTML', + concept: { + attributes: [ + { + name: 'aria-expanded', + }, + ], + constraints: [ + 'scoped to a details element', + ], name: 'summary', }, }, diff --git a/src/etc/objects/TextAreaRole.js b/src/etc/objects/TextAreaRole.js new file mode 100644 index 0000000..1f5254e --- /dev/null +++ b/src/etc/objects/TextAreaRole.js @@ -0,0 +1,28 @@ +/** + * @flow + */ +const TextAreaRole: AXObjectModelDefinition = { + relatedConcepts: [ + { + module: 'ARIA', + concept: { + attributes: [ + { + name: 'aria-multiline', + value: 'true', + }, + ], + name: 'textbox', + }, + }, + { + module: 'HTML', + concept: { + name: 'textarea', + }, + }, + ], + type: 'widget', +}; + +export default TextAreaRole; \ No newline at end of file