Skip to content
Extraits de code Groupes Projets
ViewDataTable_spec.js 6,9 ko
Newer Older
  • Learn to ignore specific revisions
  • /*!
     * Piwik - free/libre analytics platform
     *
     * ViewDataTable screenshot tests.
     *
     * @link http://piwik.org
     * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
     */
    
    describe("ViewDataTableTest", function () { // TODO: should remove Test suffix from images instead of naming suites ...Test
        this.timeout(0);
    
        // TODO: rename screenshot files, remove numbers
        var url = "?module=Widgetize&action=iframe&moduleToWidgetize=Referrers&idSite=1&period=year&date=2012-08-09&"
                + "actionToWidgetize=getKeywords&viewDataTable=table&filter_limit=5&isFooterExpandedInDashboard=1";
    
        it("should load correctly", function (done) {
            expect.screenshot("0_initial").to.be.capture(function (page) {
                page.load(url);
            }, done);
        });
    
        it("should load all columns when all columns clicked", function (done) {
            expect.screenshot("1_all_columns").to.be.capture(function (page) {
    
                page.click('.activateVisualizationSelection');
    
                page.click('.tableIcon[data-footer-icon-id=tableAllColumns]');
            }, done);
        });
    
        it("should sort a column in descending order when column clicked initially", function (done) {
            expect.screenshot("2_column_sorted_desc").to.be.capture(function (page) {
                page.click('th#avg_time_on_site');
            }, done);
        });
    
        it("should sort a column in ascending order when column clicked second time", function (done) {
            expect.screenshot("3_column_sorted_asc").to.be.capture(function (page) {
                page.click('th#avg_time_on_site');
            }, done);
        });
    
    
        it("should show all available visualizations for this report", function (done) {
            expect.screenshot("5_visualizations").to.be.captureSelector('.dataTableFooterIcons', function (page) {
                page.click('.activateVisualizationSelection');
            }, done);
        });
    
    
        it("should load goals table when goals footer icon clicked", function (done) {
            expect.screenshot("5_goals").to.be.capture(function (page) {
                page.click('.tableIcon[data-footer-icon-id=tableGoals]');
            }, done);
        });
    
        it("should load bar graph when bar graph footer icon clicked", function (done) {
            expect.screenshot('6_bar_graph').to.be.capture(function (page) {
    
                page.click('.activateVisualizationSelection');
    
                page.click('.tableIcon[data-footer-icon-id=graphVerticalBar]');
            }, done);
        });
    
        it("should load pie graph when pie graph footer icon clicked", function (done) {
            expect.screenshot('7_pie_graph').to.be.capture(function (page) {
    
                page.click('.activateVisualizationSelection');
    
                page.click('.tableIcon[data-footer-icon-id=graphPie]');
            }, done);
        });
    
        it("should load a tag cloud when tag cloud footer icon clicked", function (done) {
            expect.screenshot('8_tag_cloud').to.be.capture(function (page) {
    
                page.click('.activateVisualizationSelection');
    
                page.click('.tableIcon[data-footer-icon-id=cloud]');
            }, done);
        });
    
        it("should load normal table when normal table footer icon clicked", function (done) {
            expect.screenshot('9_normal_table').to.be.capture(function (page) {
    
                page.click('.activateVisualizationSelection');
    
                page.click('.tableIcon[data-footer-icon-id=table]');
    
                page.mouseMove({x: -10, y: -10}); // mae sure no row is highlighted
    
        it("should show the limit selector when the limit selector is clicked", function (done) {
            expect.screenshot('limit_selector_open').to.be.capture(function (page) {
    
        it("should change the number of rows when new limit selected", function (done) {
            expect.screenshot('10_change_limit').to.be.capture(function (page) {
    
                page.evaluate(function () {
                    $('.limitSelection ul li:contains(10):first span').click();
                });
    
            }, done);
        });
    
        it("should flatten the table when the flatten link is clicked", function (done) {
            expect.screenshot('11_flattened').to.be.capture(function (page) {
    
                page.click('.dropdownConfigureIcon');
    
                page.click('.dataTableFlatten');
            }, done);
        });
    
        it("should show aggregate rows when the aggregate rows option is clicked", function (done) {
            expect.screenshot('12_aggregate_shown').to.be.capture(function (page) {
    
                page.click('.dataTableIncludeAggregateRows');
            }, done);
        });
    
        it("should make the report hierarchical when the flatten link is clicked again", function (done) {
            expect.screenshot('13_make_hierarchical').to.be.capture(function (page) {
    
                page.click('.dataTableFlatten');
            }, done);
        });
    
        it("should show the visits percent when hovering over a column", function (done) {
            expect.screenshot('14_visits_percent').to.be.capture(function (page) {
    
    Thomas Steur's avatar
    Thomas Steur a validé
                page.mouseMove('td.column:not(.label)');
    
            }, done);
        });
    
        it("should load subtables correctly when row clicked", function (done) {
            expect.screenshot('subtables_loaded').to.be.capture(function (page) {
                page.click('tr.subDataTable:first');
                page.click('tr.subDataTable:eq(2)');
            }, done);
        });
    
        it("should search the table when a search string is entered and the search button clicked", function (done) {
            expect.screenshot('15_search').to.be.capture(function (page) {
    
                page.click('.dataTableAction.searchAction');
                page.sendKeys('.searchAction .dataTableSearchInput', 'term');
                page.click('.searchAction .icon-search');
    
            }, done);
        });
    
        it("should display the export options when clicking the export icon", function (done) {
            expect.screenshot('export_options').to.be.capture(function (page) {
    
                page.click('.activateExportSelection');
    
            }, done);
        });
    
        it("should display a related report when related report link is clicked", function (done) {
            expect.screenshot('related_report_click').to.be.capture(function (page) {
    
                var newReportUrl = url.replace("=Referrers", "=DevicesDetection").replace("=getKeywords", "=getOsFamilies");
    
    
                page.load(newReportUrl);
                page.click('.datatableRelatedReports li>span:visible');
            }, done);
        });
    
    
        it("should exclude low population rows when low population clicked", function (done) {
            var newUrl = url.replace('moduleToWidgetize=Referrers', 'moduleToWidgetize=Actions').replace('actionToWidgetize=getKeywords', 'actionToWidgetize=getPageUrls');
            expect.screenshot("exclude_low_population").to.be.capture(function (page) {
                page.load(newUrl);
                page.click('.dropdownConfigureIcon');
                page.click('.dataTableExcludeLowPopulation');
            }, done);
        });