| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| import {elementByIdFn, querySelectorAllFn, querySelectorFn} from "/script/tobago-test.js"; |
| import {JasmineTestTool} from "/tobago/test/tobago-test-tool.js"; |
| |
| it("Basics: Name", function (done) { |
| let colNameFn = querySelectorFn("#page\\:mainForm\\:s1\\:columnName_sorter"); |
| let rowsFn = querySelectorAllFn("#page\\:mainForm\\:s1 .tobago-sheet-bodyTable tbody .tobago-sheet-row"); |
| let leftPagingFn = querySelectorFn("#page\\:mainForm\\:s1 .tobago-sheet-paging-markup-left input"); |
| |
| let test = new JasmineTestTool(done); |
| test.setup( |
| () => colNameFn().classList.contains("tobago-sheet-header-markup-ascending"), |
| () => colNameFn().dispatchEvent(new Event("click", {bubbles: true}))); |
| test.setup( |
| () => rowsFn()[0].querySelector("tobago-out").textContent === "Earth", |
| () => { |
| leftPagingFn().value = "22"; |
| leftPagingFn().dispatchEvent(new Event("blur", {bubbles: true})); |
| }); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-sortable")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-ascending")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-descending")).not.toBe(true)); |
| test.event("click", colNameFn, () => waitForBodyTable(rowsFn(), |
| "Proteus", "1.12", "1989", |
| "Prospero", "-1962.95", "1999", |
| "Prometheus", "0.61", "1980", |
| "Praxidike", "625.3", "2000")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Proteus", "1.12", "1989", |
| "Prospero", "-1962.95", "1999", |
| "Prometheus", "0.61", "1980", |
| "Praxidike", "625.3", "2000")); |
| test.event("click", colNameFn, () => waitForBodyTable(rowsFn(), |
| "Earth", "365.26", "", |
| "Elara", "259.65", "1905", |
| "Enceladus", "1.37", "1789", |
| "Epimetheus", "0.69", "1980")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Earth", "365.26", "", |
| "Elara", "259.65", "1905", |
| "Enceladus", "1.37", "1789", |
| "Epimetheus", "0.69", "1980")); |
| test.start(); |
| }); |
| |
| it("Basics: Period", function (done) { |
| let colPeriodFn = querySelectorFn("#page\\:mainForm\\:s1\\:columnPeriod_sorter"); |
| let rowsFn = querySelectorAllFn("#page\\:mainForm\\:s1 .tobago-sheet-bodyTable tbody .tobago-sheet-row"); |
| let leftPagingFn = querySelectorFn("#page\\:mainForm\\:s1 .tobago-sheet-paging-markup-left input"); |
| |
| let test = new JasmineTestTool(done); |
| test.setup( |
| () => colPeriodFn().classList.contains("tobago-sheet-header-markup-ascending"), |
| () => colPeriodFn().dispatchEvent(new Event("click", {bubbles: true}))); |
| test.setup( |
| () => rowsFn()[0].querySelector("tobago-out").textContent === "Rosalind", |
| () => { |
| leftPagingFn().value = "29"; |
| leftPagingFn().dispatchEvent(new Event("blur", {bubbles: true})); |
| }); |
| test.do(() => expect(colPeriodFn().classList.contains("tobago-sheet-header-markup-sortable")).toBe(true)); |
| test.do(() => expect(colPeriodFn().classList.contains("tobago-sheet-header-markup-ascending")).toBe(true)); |
| test.do(() => expect(colPeriodFn().classList.contains("tobago-sheet-header-markup-descending")).not.toBe(true)); |
| test.event("click", colPeriodFn, () => waitForBodyTable(rowsFn(), |
| "Callisto", "16.69", "1610", |
| "Titan", "15.95", "1655", |
| "Oberon", "13.46", "1787", |
| "Titania", "8.71", "1787")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Callisto", "16.69", "1610", |
| "Titan", "15.95", "1655", |
| "Oberon", "13.46", "1787", |
| "Titania", "8.71", "1787")); |
| test.event("click", colPeriodFn, () => waitForBodyTable(rowsFn(), |
| "Rosalind", "0.56", "1986", |
| "Pan", "0.58", "1990", |
| "Atlas", "0.6", "1980", |
| "Prometheus", "0.61", "1980")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Rosalind", "0.56", "1986", |
| "Pan", "0.58", "1990", |
| "Atlas", "0.6", "1980", |
| "Prometheus", "0.61", "1980")); |
| test.start(); |
| }); |
| |
| it("Basics: Year", function (done) { |
| let colYearFn = querySelectorFn("#page\\:mainForm\\:s1\\:columnDiscoverYear_sorter"); |
| let rowsFn = querySelectorAllFn("#page\\:mainForm\\:s1 .tobago-sheet-bodyTable tbody .tobago-sheet-row"); |
| let leftPagingFn = querySelectorFn("#page\\:mainForm\\:s1 .tobago-sheet-paging-markup-left input"); |
| |
| let test = new JasmineTestTool(done); |
| test.setup( |
| () => colYearFn().classList.contains("tobago-sheet-header-markup-ascending"), |
| () => colYearFn().dispatchEvent(new Event("click", {bubbles: true}))); |
| test.setup( |
| () => rowsFn()[0].querySelector("tobago-out").textContent === "Amalthea", |
| () => { |
| leftPagingFn().value = "22"; |
| leftPagingFn().dispatchEvent(new Event("blur", {bubbles: true})); |
| }); |
| test.do(() => expect(colYearFn().classList.contains("tobago-sheet-header-markup-sortable")).toBe(true)); |
| test.do(() => expect(colYearFn().classList.contains("tobago-sheet-header-markup-ascending")).toBe(true)); |
| test.do(() => expect(colYearFn().classList.contains("tobago-sheet-header-markup-descending")).not.toBe(true)); |
| test.event("click", colYearFn, |
| () => rowsFn() && rowsFn()[0].querySelectorAll("tobago-out")[2].textContent === "1999"); |
| test.do(() => expect(rowsFn()[0].querySelectorAll("tobago-out")[2].textContent).toBe("1999")); |
| test.do(() => expect(rowsFn()[1].querySelectorAll("tobago-out")[2].textContent).toBe("1999")); |
| test.do(() => expect(rowsFn()[2].querySelectorAll("tobago-out")[2].textContent).toBe("1997")); |
| test.do(() => expect(rowsFn()[3].querySelectorAll("tobago-out")[2].textContent).toBe("1997")); |
| test.event("click", colYearFn, |
| () => rowsFn() && rowsFn()[0].querySelectorAll("tobago-out")[2].textContent === "1892"); |
| test.do(() => expect(rowsFn()[0].querySelectorAll("tobago-out")[2].textContent).toBe("1892")); |
| test.do(() => expect(rowsFn()[1].querySelectorAll("tobago-out")[2].textContent).toBe("1898")); |
| test.do(() => expect(rowsFn()[2].querySelectorAll("tobago-out")[2].textContent).toBe("1904")); |
| test.do(() => expect(rowsFn()[3].querySelectorAll("tobago-out")[2].textContent).toBe("1905")); |
| test.start(); |
| }); |
| |
| /** |
| * 1. goto line 8 |
| * 2. goto line 9 |
| */ |
| it("Basics: left paging", function (done) { |
| let colNameFn = querySelectorFn("#page\\:mainForm\\:s1\\:columnName_sorter"); |
| let rowsFn = querySelectorAllFn("#page\\:mainForm\\:s1 .tobago-sheet-bodyTable tbody .tobago-sheet-row"); |
| let leftPagingFn = querySelectorFn("#page\\:mainForm\\:s1 .tobago-sheet-paging-markup-left input"); |
| |
| let test = new JasmineTestTool(done); |
| test.setup( |
| () => colNameFn().classList.contains("tobago-sheet-header-markup-ascending"), |
| () => colNameFn().dispatchEvent(new Event("click", {bubbles: true}))); |
| test.setup( |
| () => rowsFn()[0].querySelector("tobago-out").textContent === "1986U10", |
| () => { |
| leftPagingFn().value = "1"; |
| leftPagingFn().dispatchEvent(new Event("blur", {bubbles: true})); |
| }); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-sortable")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-ascending")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-descending")).not.toBe(true)); |
| test.do(() => leftPagingFn().value = "8"); |
| test.event("blur", leftPagingFn, () => waitForBodyTable(rowsFn(), |
| "Bianca", "0.43", "1986", |
| "Caliban", "-579.39", "1997", |
| "Callirrhoe", "758.8", "2000", |
| "Callisto", "16.69", "1610")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Bianca", "0.43", "1986", |
| "Caliban", "-579.39", "1997", |
| "Callirrhoe", "758.8", "2000", |
| "Callisto", "16.69", "1610")); |
| test.do(() => leftPagingFn().value = "9"); |
| test.event("blur", leftPagingFn, () => waitForBodyTable(rowsFn(), |
| "Caliban", "-579.39", "1997", |
| "Callirrhoe", "758.8", "2000", |
| "Callisto", "16.69", "1610", |
| "Calypso", "1.89", "1980")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Caliban", "-579.39", "1997", |
| "Callirrhoe", "758.8", "2000", |
| "Callisto", "16.69", "1610", |
| "Calypso", "1.89", "1980")); |
| test.start(); |
| }); |
| |
| /** |
| * 1. goto page 7 |
| * 2. goto page 16 |
| * 3. goto page 13 |
| */ |
| it("Basics: center paging", function (done) { |
| let colNameFn = querySelectorFn("#page\\:mainForm\\:s1\\:columnName_sorter"); |
| let rowsFn = querySelectorAllFn("#page\\:mainForm\\:s1 .tobago-sheet-bodyTable tbody .tobago-sheet-row"); |
| let leftPagingFn = querySelectorFn("#page\\:mainForm\\:s1 .tobago-sheet-paging-markup-left input"); |
| let centerPaging7Fn = elementByIdFn("page:mainForm:s1:pageActiontoPage-7"); |
| let centerPaging14Fn = elementByIdFn("page:mainForm:s1:pageActiontoPage-14"); |
| let centerPaging16Fn = elementByIdFn("page:mainForm:s1:pageActiontoPage-16"); |
| |
| let test = new JasmineTestTool(done); |
| test.setup( |
| () => colNameFn().classList.contains("tobago-sheet-header-markup-ascending"), |
| () => colNameFn().dispatchEvent(new Event("click", {bubbles: true}))); |
| test.setup( |
| () => rowsFn()[0].querySelector("tobago-out").textContent === "1986U10", |
| () => { |
| leftPagingFn().value = "1"; |
| leftPagingFn().dispatchEvent(new Event("blur", {bubbles: true})); |
| }); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-sortable")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-ascending")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-descending")).not.toBe(true)); |
| test.event("click", centerPaging7Fn, () => waitForBodyTable(rowsFn(), |
| "Epimetheus", "0.69", "1980", |
| "Erinome", "728.3", "2000", |
| "Europa", "3.55", "1610", |
| "Galatea", "0.43", "1989")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Epimetheus", "0.69", "1980", |
| "Erinome", "728.3", "2000", |
| "Europa", "3.55", "1610", |
| "Galatea", "0.43", "1989")); |
| test.event("click", centerPaging16Fn, () => waitForBodyTable(rowsFn(), |
| "Phoebe", "-550.48", "1898", |
| "Pluto", "90800.0", "1930", |
| "Portia", "0.51", "1986", |
| "Praxidike", "625.3", "2000")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Phoebe", "-550.48", "1898", |
| "Pluto", "90800.0", "1930", |
| "Portia", "0.51", "1986", |
| "Praxidike", "625.3", "2000")); |
| test.event("click", centerPaging14Fn, () => waitForBodyTable(rowsFn(), |
| "Neptune", "60190.0", "1846", |
| "Nereid", "360.13", "1949", |
| "Oberon", "13.46", "1787", |
| "Ophelia", "0.38", "1986")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Neptune", "60190.0", "1846", |
| "Nereid", "360.13", "1949", |
| "Oberon", "13.46", "1787", |
| "Ophelia", "0.38", "1986")); |
| test.start(); |
| }); |
| |
| /** |
| * 1. goto first page |
| * 2. goto page 2 by pressing arrow-right |
| * 3. goto last page |
| * 4. goto page 21 by pressing arrow-left |
| * 5. goto page 14 |
| */ |
| it("Basics: right paging", function (done) { |
| let colNameFn = querySelectorFn("#page\\:mainForm\\:s1\\:columnName_sorter"); |
| let rowsFn = querySelectorAllFn("#page\\:mainForm\\:s1 .tobago-sheet-bodyTable tbody .tobago-sheet-row"); |
| let leftPagingFn = querySelectorFn("#page\\:mainForm\\:s1 .tobago-sheet-paging-markup-left input"); |
| let rightPagingFirstFn = elementByIdFn("page:mainForm:s1:pageActionfirst"); |
| let rightPagingPrevFn = elementByIdFn("page:mainForm:s1:pageActionprev"); |
| let rightPagingNextFn = elementByIdFn("page:mainForm:s1:pageActionnext"); |
| let rightPagingLastFn = elementByIdFn("page:mainForm:s1:pageActionlast"); |
| let jumpToPageFn = querySelectorFn("#page\\:mainForm\\:s1 .tobago-sheet-paging-markup-right .page-link input"); |
| |
| let test = new JasmineTestTool(done); |
| test.setup( |
| () => colNameFn().classList.contains("tobago-sheet-header-markup-ascending"), |
| () => colNameFn().dispatchEvent(new Event("click", {bubbles: true}))); |
| test.setup( |
| () => rowsFn()[0].querySelector("tobago-out").textContent === "Earth", |
| () => { |
| leftPagingFn().value = "22"; |
| leftPagingFn().dispatchEvent(new Event("blur", {bubbles: true})); |
| }); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-sortable")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-ascending")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-descending")).not.toBe(true)); |
| test.event("click", rightPagingFirstFn, () => waitForBodyTable(rowsFn(), |
| "1986U10", "0.64", "1999", |
| "Adrastea", "0.3", "1979", |
| "Amalthea", "0.5", "1892", |
| "Ananke", "-629.77", "1951")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "1986U10", "0.64", "1999", |
| "Adrastea", "0.3", "1979", |
| "Amalthea", "0.5", "1892", |
| "Ananke", "-629.77", "1951")); |
| test.event("click", rightPagingNextFn, () => waitForBodyTable(rowsFn(), |
| "Ariel", "2.52", "1851", |
| "Atlas", "0.6", "1980", |
| "Belinda", "0.62", "1986", |
| "Bianca", "0.43", "1986")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Ariel", "2.52", "1851", |
| "Atlas", "0.6", "1980", |
| "Belinda", "0.62", "1986", |
| "Bianca", "0.43", "1986")); |
| test.event("click", rightPagingLastFn, () => waitForBodyTable(rowsFn(), |
| "Triton", "-5.88", "1846", |
| "Umbriel", "4.14", "1851", |
| "Uranus", "30685.0", "1781", |
| "Venus", "224.7", "")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Triton", "-5.88", "1846", |
| "Umbriel", "4.14", "1851", |
| "Uranus", "30685.0", "1781", |
| "Venus", "224.7", "")); |
| test.event("click", rightPagingPrevFn, () => waitForBodyTable(rowsFn(), |
| "Thebe", "0.67", "1979", |
| "Themisto", "130.02", "2000", |
| "Titan", "15.95", "1655", |
| "Titania", "8.71", "1787")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Thebe", "0.67", "1979", |
| "Themisto", "130.02", "2000", |
| "Titan", "15.95", "1655", |
| "Titania", "8.71", "1787")); |
| test.do(() => jumpToPageFn().value = "14"); |
| test.event("blur", jumpToPageFn, () => waitForBodyTable(rowsFn(), |
| "Neptune", "60190.0", "1846", |
| "Nereid", "360.13", "1949", |
| "Oberon", "13.46", "1787", |
| "Ophelia", "0.38", "1986")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Neptune", "60190.0", "1846", |
| "Nereid", "360.13", "1949", |
| "Oberon", "13.46", "1787", |
| "Ophelia", "0.38", "1986")); |
| test.start(); |
| }); |
| |
| it("Custom Sorting: Name", function (done) { |
| let colNameFn = querySelectorFn("#page\\:mainForm\\:s2\\:customColumnName_sorter"); |
| let rowsFn = querySelectorAllFn("#page\\:mainForm\\:s2 .tobago-sheet-bodyTable tbody .tobago-sheet-row"); |
| let leftPagingFn = querySelectorFn("#page\\:mainForm\\:s2 .tobago-sheet-paging-markup-left input"); |
| |
| let test = new JasmineTestTool(done); |
| test.setup( |
| () => colNameFn().classList.contains("tobago-sheet-header-markup-ascending"), |
| () => colNameFn().dispatchEvent(new Event("click", {bubbles: true}))); |
| test.setup( |
| () => rowsFn()[0].querySelector("tobago-out").textContent === "Earth", |
| () => { |
| leftPagingFn().value = "22"; |
| leftPagingFn().dispatchEvent(new Event("blur", {bubbles: true})); |
| }); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-sortable")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-ascending")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-descending")).not.toBe(true)); |
| test.event("click", colNameFn, () => waitForBodyTable(rowsFn(), |
| "Proteus", "1.12", "1989", |
| "Prospero", "-1962.95", "1999", |
| "Prometheus", "0.61", "1980", |
| "Praxidike", "625.3", "2000")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Proteus", "1.12", "1989", |
| "Prospero", "-1962.95", "1999", |
| "Prometheus", "0.61", "1980", |
| "Praxidike", "625.3", "2000")); |
| test.event("click", colNameFn, () => waitForBodyTable(rowsFn(), |
| "Earth", "365.26", "", |
| "Elara", "259.65", "1905", |
| "Enceladus", "1.37", "1789", |
| "Epimetheus", "0.69", "1980")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Earth", "365.26", "", |
| "Elara", "259.65", "1905", |
| "Enceladus", "1.37", "1789", |
| "Epimetheus", "0.69", "1980")); |
| test.start(); |
| }); |
| |
| it("Custom Sorting: Period", function (done) { |
| let colPeriodFn = querySelectorFn("#page\\:mainForm\\:s2\\:customColumnPeriod_sorter"); |
| let rowsFn = querySelectorAllFn("#page\\:mainForm\\:s2 .tobago-sheet-bodyTable tbody .tobago-sheet-row"); |
| let leftPagingFn = querySelectorFn("#page\\:mainForm\\:s2 .tobago-sheet-paging-markup-left input"); |
| |
| let test = new JasmineTestTool(done); |
| test.setup( |
| () => colPeriodFn().classList.contains("tobago-sheet-header-markup-ascending"), |
| () => colPeriodFn().dispatchEvent(new Event("click", {bubbles: true}))); |
| test.setup( |
| () => rowsFn()[0].querySelector("tobago-out").textContent === "Mimas", |
| () => { |
| leftPagingFn().value = "29"; |
| leftPagingFn().dispatchEvent(new Event("blur", {bubbles: true})); |
| }); |
| test.do(() => expect(colPeriodFn().classList.contains("tobago-sheet-header-markup-sortable")).toBe(true)); |
| test.do(() => expect(colPeriodFn().classList.contains("tobago-sheet-header-markup-ascending")).toBe(true)); |
| test.do(() => expect(colPeriodFn().classList.contains("tobago-sheet-header-markup-descending")).not.toBe(true)); |
| test.event("click", colPeriodFn, () => waitForBodyTable(rowsFn(), |
| "Elara", "259.65", "1905", |
| "Lysithea", "259.22", "1938", |
| "Himalia", "250.57", "1904", |
| "Leda", "238.72", "1974")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Elara", "259.65", "1905", |
| "Lysithea", "259.22", "1938", |
| "Himalia", "250.57", "1904", |
| "Leda", "238.72", "1974")); |
| test.event("click", colPeriodFn, () => waitForBodyTable(rowsFn(), |
| "Mimas", "0.94", "1789", |
| "Proteus", "1.12", "1989", |
| "Deimos", "1.26", "1877", |
| "Enceladus", "1.37", "1789")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Mimas", "0.94", "1789", |
| "Proteus", "1.12", "1989", |
| "Deimos", "1.26", "1877", |
| "Enceladus", "1.37", "1789")); |
| test.start(); |
| }); |
| |
| it("Custom Sorting: Year", function (done) { |
| let colYearFn = querySelectorFn("#page\\:mainForm\\:s2\\:customColumnYear_sorter"); |
| let rowsFn = querySelectorAllFn("#page\\:mainForm\\:s2 .tobago-sheet-bodyTable tbody .tobago-sheet-row"); |
| let leftPagingFn = querySelectorFn("#page\\:mainForm\\:s2 .tobago-sheet-paging-markup-left input"); |
| |
| let test = new JasmineTestTool(done); |
| test.setup( |
| () => colYearFn().classList.contains("tobago-sheet-header-markup-ascending"), |
| () => colYearFn().dispatchEvent(new Event("click", {bubbles: true}))); |
| test.setup( |
| () => rowsFn()[0].querySelectorAll("tobago-out")[2].textContent === "1789", |
| () => { |
| leftPagingFn().value = "22"; |
| leftPagingFn().dispatchEvent(new Event("blur", {bubbles: true})); |
| }); |
| test.do(() => expect(colYearFn().classList.contains("tobago-sheet-header-markup-sortable")).toBe(true)); |
| test.do(() => expect(colYearFn().classList.contains("tobago-sheet-header-markup-ascending")).toBe(true)); |
| test.do(() => expect(colYearFn().classList.contains("tobago-sheet-header-markup-descending")).not.toBe(true)); |
| test.event("click", colYearFn, |
| () => rowsFn() && rowsFn()[0].querySelectorAll("tobago-out")[2].textContent === "1989"); |
| test.do(() => expect(rowsFn()[0].querySelectorAll("tobago-out")[2].textContent).toBe("1989")); |
| test.do(() => expect(rowsFn()[1].querySelectorAll("tobago-out")[2].textContent).toBe("1989")); |
| test.do(() => expect(rowsFn()[2].querySelectorAll("tobago-out")[2].textContent).toBe("1989")); |
| test.do(() => expect(rowsFn()[3].querySelectorAll("tobago-out")[2].textContent).toBe("1986")); |
| test.event("click", colYearFn, |
| () => rowsFn() && rowsFn()[0].querySelectorAll("tobago-out")[2].textContent === "1789"); |
| test.do(() => expect(rowsFn()[0].querySelectorAll("tobago-out")[2].textContent).toBe("1789")); |
| test.do(() => expect(rowsFn()[1].querySelectorAll("tobago-out")[2].textContent).toBe("1846")); |
| test.do(() => expect(rowsFn()[2].querySelectorAll("tobago-out")[2].textContent).toBe("1846")); |
| test.do(() => expect(rowsFn()[3].querySelectorAll("tobago-out")[2].textContent).toBe("1848")); |
| test.start(); |
| }); |
| |
| /** |
| * 1. goto line 8 |
| * 2. goto line 9 |
| */ |
| it("Custom Sorting: left paging", function (done) { |
| let colNameFn = querySelectorFn("#page\\:mainForm\\:s2\\:customColumnName_sorter"); |
| let rowsFn = querySelectorAllFn("#page\\:mainForm\\:s2 .tobago-sheet-bodyTable tbody .tobago-sheet-row"); |
| let leftPagingFn = querySelectorFn("#page\\:mainForm\\:s2 .tobago-sheet-paging-markup-left input"); |
| |
| let test = new JasmineTestTool(done); |
| test.setup( |
| () => colNameFn().classList.contains("tobago-sheet-header-markup-ascending"), |
| () => colNameFn().dispatchEvent(new Event("click", {bubbles: true}))); |
| test.setup( |
| () => rowsFn()[0].querySelector("tobago-out").textContent === "1986U10", |
| () => { |
| leftPagingFn().value = "1"; |
| leftPagingFn().dispatchEvent(new Event("blur", {bubbles: true})); |
| }); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-sortable")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-ascending")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-descending")).not.toBe(true)); |
| test.do(() => leftPagingFn().value = "8"); |
| test.event("blur", leftPagingFn, () => waitForBodyTable(rowsFn(), |
| "Bianca", "0.43", "1986", |
| "Caliban", "-579.39", "1997", |
| "Callirrhoe", "758.8", "2000", |
| "Callisto", "16.69", "1610")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Bianca", "0.43", "1986", |
| "Caliban", "-579.39", "1997", |
| "Callirrhoe", "758.8", "2000", |
| "Callisto", "16.69", "1610")); |
| test.do(() => leftPagingFn().value = "9"); |
| test.event("blur", leftPagingFn, () => waitForBodyTable(rowsFn(), |
| "Caliban", "-579.39", "1997", |
| "Callirrhoe", "758.8", "2000", |
| "Callisto", "16.69", "1610", |
| "Calypso", "1.89", "1980")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Caliban", "-579.39", "1997", |
| "Callirrhoe", "758.8", "2000", |
| "Callisto", "16.69", "1610", |
| "Calypso", "1.89", "1980")); |
| test.start(); |
| }); |
| |
| /** |
| * 1. goto page 7 |
| * 2. goto page 16 |
| * 3. goto page 13 |
| */ |
| it("Custom Sorting: center paging", function (done) { |
| let colNameFn = querySelectorFn("#page\\:mainForm\\:s2\\:customColumnName_sorter"); |
| let rowsFn = querySelectorAllFn("#page\\:mainForm\\:s2 .tobago-sheet-bodyTable tbody .tobago-sheet-row"); |
| let leftPagingFn = querySelectorFn("#page\\:mainForm\\:s2 .tobago-sheet-paging-markup-left input"); |
| let centerPaging7Fn = elementByIdFn("page:mainForm:s2:pageActiontoPage-7"); |
| let centerPaging14Fn = elementByIdFn("page:mainForm:s2:pageActiontoPage-14"); |
| let centerPaging16Fn = elementByIdFn("page:mainForm:s2:pageActiontoPage-16"); |
| |
| let test = new JasmineTestTool(done); |
| test.setup( |
| () => colNameFn().classList.contains("tobago-sheet-header-markup-ascending"), |
| () => colNameFn().dispatchEvent(new Event("click", {bubbles: true}))); |
| test.setup( |
| () => rowsFn()[0].querySelector("tobago-out").textContent === "1986U10", |
| () => { |
| leftPagingFn().value = "1"; |
| leftPagingFn().dispatchEvent(new Event("blur", {bubbles: true})); |
| }); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-sortable")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-ascending")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-descending")).not.toBe(true)); |
| test.event("click", centerPaging7Fn, () => waitForBodyTable(rowsFn(), |
| "Epimetheus", "0.69", "1980", |
| "Erinome", "728.3", "2000", |
| "Europa", "3.55", "1610", |
| "Galatea", "0.43", "1989")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Epimetheus", "0.69", "1980", |
| "Erinome", "728.3", "2000", |
| "Europa", "3.55", "1610", |
| "Galatea", "0.43", "1989")); |
| test.event("click", centerPaging16Fn, () => waitForBodyTable(rowsFn(), |
| "Phoebe", "-550.48", "1898", |
| "Pluto", "90800.0", "1930", |
| "Portia", "0.51", "1986", |
| "Praxidike", "625.3", "2000")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Phoebe", "-550.48", "1898", |
| "Pluto", "90800.0", "1930", |
| "Portia", "0.51", "1986", |
| "Praxidike", "625.3", "2000")); |
| test.event("click", centerPaging14Fn, () => waitForBodyTable(rowsFn(), |
| "Neptune", "60190.0", "1846", |
| "Nereid", "360.13", "1949", |
| "Oberon", "13.46", "1787", |
| "Ophelia", "0.38", "1986")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Neptune", "60190.0", "1846", |
| "Nereid", "360.13", "1949", |
| "Oberon", "13.46", "1787", |
| "Ophelia", "0.38", "1986")); |
| test.start(); |
| }); |
| |
| /** |
| * 1. goto first page |
| * 2. goto page 2 by pressing arrow-right |
| * 3. goto last page |
| * 4. goto page 21 by pressing arrow-left |
| * 5. goto page 14 |
| */ |
| it("Custom Sorting: right paging", function (done) { |
| let colNameFn = querySelectorFn("#page\\:mainForm\\:s2\\:customColumnName_sorter"); |
| let rowsFn = querySelectorAllFn("#page\\:mainForm\\:s2 .tobago-sheet-bodyTable tbody .tobago-sheet-row"); |
| let leftPagingFn = querySelectorFn("#page\\:mainForm\\:s2 .tobago-sheet-paging-markup-left input"); |
| let rightPagingFirstFn = elementByIdFn("page:mainForm:s2:pageActionfirst"); |
| let rightPagingPrevFn = elementByIdFn("page:mainForm:s2:pageActionprev"); |
| let rightPagingNextFn = elementByIdFn("page:mainForm:s2:pageActionnext"); |
| let rightPagingLastFn = elementByIdFn("page:mainForm:s2:pageActionlast"); |
| let rightPagingToPageFn = elementByIdFn("page:mainForm:s2:pageActiontoPage"); |
| |
| let test = new JasmineTestTool(done); |
| test.setup( |
| () => colNameFn().classList.contains("tobago-sheet-header-markup-ascending"), |
| () => colNameFn().dispatchEvent(new Event("click", {bubbles: true}))); |
| test.setup( |
| () => rowsFn()[0].querySelector("tobago-out").textContent === "Earth", |
| () => { |
| leftPagingFn().value = "22"; |
| leftPagingFn().dispatchEvent(new Event("blur", {bubbles: true})); |
| }); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-sortable")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-ascending")).toBe(true)); |
| test.do(() => expect(colNameFn().classList.contains("tobago-sheet-header-markup-descending")).not.toBe(true)); |
| test.event("click", rightPagingFirstFn, () => waitForBodyTable(rowsFn(), |
| "1986U10", "0.64", "1999", |
| "Adrastea", "0.3", "1979", |
| "Amalthea", "0.5", "1892", |
| "Ananke", "-629.77", "1951")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "1986U10", "0.64", "1999", |
| "Adrastea", "0.3", "1979", |
| "Amalthea", "0.5", "1892", |
| "Ananke", "-629.77", "1951")); |
| test.event("click", rightPagingNextFn, () => waitForBodyTable(rowsFn(), |
| "Ariel", "2.52", "1851", |
| "Atlas", "0.6", "1980", |
| "Belinda", "0.62", "1986", |
| "Bianca", "0.43", "1986")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Ariel", "2.52", "1851", |
| "Atlas", "0.6", "1980", |
| "Belinda", "0.62", "1986", |
| "Bianca", "0.43", "1986")); |
| test.event("click", rightPagingLastFn, () => waitForBodyTable(rowsFn(), |
| "Triton", "-5.88", "1846", |
| "Umbriel", "4.14", "1851", |
| "Uranus", "30685.0", "1781", |
| "Venus", "224.7", "")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Triton", "-5.88", "1846", |
| "Umbriel", "4.14", "1851", |
| "Uranus", "30685.0", "1781", |
| "Venus", "224.7", "")); |
| test.event("click", rightPagingPrevFn, () => waitForBodyTable(rowsFn(), |
| "Thebe", "0.67", "1979", |
| "Themisto", "130.02", "2000", |
| "Titan", "15.95", "1655", |
| "Titania", "8.71", "1787")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Thebe", "0.67", "1979", |
| "Themisto", "130.02", "2000", |
| "Titan", "15.95", "1655", |
| "Titania", "8.71", "1787")); |
| test.do(() => rightPagingToPageFn().value = "14"); |
| test.event("blur", rightPagingToPageFn, () => waitForBodyTable(rowsFn(), |
| "Neptune", "60190.0", "1846", |
| "Nereid", "360.13", "1949", |
| "Oberon", "13.46", "1787", |
| "Ophelia", "0.38", "1986")); |
| test.do(() => expectBodyTable(rowsFn(), |
| "Neptune", "60190.0", "1846", |
| "Nereid", "360.13", "1949", |
| "Oberon", "13.46", "1787", |
| "Ophelia", "0.38", "1986")); |
| test.start(); |
| }); |
| |
| function waitForBodyTable(rowsFn, row0col0, row0col1, row0col2, row1col0, row1col1, row1col2, |
| row2col0, row2col1, row2col2, row3col0, row3col1, row3col2) { |
| let $row0Col0 = rowsFn.item(0).querySelectorAll(".tobago-sheet-cell").item(0).textContent.trim(); |
| let $row0Col1 = rowsFn.item(0).querySelectorAll(".tobago-sheet-cell").item(1).textContent.trim(); |
| let $row0Col2 = rowsFn.item(0).querySelectorAll(".tobago-sheet-cell").item(2).textContent.trim(); |
| let $row1Col0 = rowsFn.item(1).querySelectorAll(".tobago-sheet-cell").item(0).textContent.trim(); |
| let $row1Col1 = rowsFn.item(1).querySelectorAll(".tobago-sheet-cell").item(1).textContent.trim(); |
| let $row1Col2 = rowsFn.item(1).querySelectorAll(".tobago-sheet-cell").item(2).textContent.trim(); |
| let $row2Col0 = rowsFn.item(2).querySelectorAll(".tobago-sheet-cell").item(0).textContent.trim(); |
| let $row2Col1 = rowsFn.item(2).querySelectorAll(".tobago-sheet-cell").item(1).textContent.trim(); |
| let $row2Col2 = rowsFn.item(2).querySelectorAll(".tobago-sheet-cell").item(2).textContent.trim(); |
| let $row3Col0 = rowsFn.item(3).querySelectorAll(".tobago-sheet-cell").item(0).textContent.trim(); |
| let $row3Col1 = rowsFn.item(3).querySelectorAll(".tobago-sheet-cell").item(1).textContent.trim(); |
| let $row3Col2 = rowsFn.item(3).querySelectorAll(".tobago-sheet-cell").item(2).textContent.trim(); |
| |
| return ($row0Col0 === row0col0 && $row0Col1 === row0col1 && $row0Col2 === row0col2 |
| && $row1Col0 === row1col0 && $row1Col1 === row1col1 && $row1Col2 === row1col2 |
| && $row2Col0 === row2col0 && $row2Col1 === row2col1 && $row2Col2 === row2col2 |
| && $row3Col0 === row3col0 && $row3Col1 === row3col1 && $row3Col2 === row3col2); |
| } |
| |
| function expectBodyTable(rowsFn, row0col0, row0col1, row0col2, row1col0, row1col1, row1col2, |
| row2col0, row2col1, row2col2, row3col0, row3col1, row3col2) { |
| let $row0Col0 = rowsFn.item(0).querySelectorAll(".tobago-sheet-cell").item(0).textContent.trim(); |
| let $row0Col1 = rowsFn.item(0).querySelectorAll(".tobago-sheet-cell").item(1).textContent.trim(); |
| let $row0Col2 = rowsFn.item(0).querySelectorAll(".tobago-sheet-cell").item(2).textContent.trim(); |
| let $row1Col0 = rowsFn.item(1).querySelectorAll(".tobago-sheet-cell").item(0).textContent.trim(); |
| let $row1Col1 = rowsFn.item(1).querySelectorAll(".tobago-sheet-cell").item(1).textContent.trim(); |
| let $row1Col2 = rowsFn.item(1).querySelectorAll(".tobago-sheet-cell").item(2).textContent.trim(); |
| let $row2Col0 = rowsFn.item(2).querySelectorAll(".tobago-sheet-cell").item(0).textContent.trim(); |
| let $row2Col1 = rowsFn.item(2).querySelectorAll(".tobago-sheet-cell").item(1).textContent.trim(); |
| let $row2Col2 = rowsFn.item(2).querySelectorAll(".tobago-sheet-cell").item(2).textContent.trim(); |
| let $row3Col0 = rowsFn.item(3).querySelectorAll(".tobago-sheet-cell").item(0).textContent.trim(); |
| let $row3Col1 = rowsFn.item(3).querySelectorAll(".tobago-sheet-cell").item(1).textContent.trim(); |
| let $row3Col2 = rowsFn.item(3).querySelectorAll(".tobago-sheet-cell").item(2).textContent.trim(); |
| |
| expect($row0Col0).toBe(row0col0, "row0col0"); |
| expect($row0Col1).toBe(row0col1, "row0col1"); |
| expect($row0Col2).toBe(row0col2, "row0col2"); |
| expect($row1Col0).toBe(row1col0, "row1col0"); |
| expect($row1Col1).toBe(row1col1, "row1col1"); |
| expect($row1Col2).toBe(row1col2, "row1col2"); |
| expect($row2Col0).toBe(row2col0, "row2col0"); |
| expect($row2Col1).toBe(row2col1, "row2col1"); |
| expect($row2Col2).toBe(row2col2, "row2col2") |
| expect($row3Col0).toBe(row3col0, "row3col0"); |
| expect($row3Col1).toBe(row3col1, "row3col1"); |
| expect($row3Col2).toBe(row3col2, "row3col2"); |
| } |