Skip to content
Extraits de code Groupes Projets
PeriodSelector_spec.js 3,96 ko
Newer Older
  • Learn to ignore specific revisions
  • /*!
     * Piwik - free/libre analytics platform
     *
     * Period selector screenshot tests.
     *
     * @link http://piwik.org
     * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
     */
    
    describe("PeriodSelector", function () {
        this.timeout(0);
    
    
        var generalParams = 'idSite=1&period=day&date=2012-01-01';
        var url = '?module=CoreHome&action=index&' + generalParams + '#?' + generalParams + '&category=General_Actions&subcategory=General_Pages';
    
        var selector = '#periodString,#periodString .dropdown';
        
    
        it("should load correctly", function (done) {
    
            expect.screenshot("loaded").to.be.captureSelector(selector, function (page) {
    
                page.load(url);
    
                // disable broadcast.propagateNewPage & remove loading gif
                page.evaluate(function () {
    
                    piwikHelper.isAngularRenderingThePage = function () {
                        return false;
                    };
    
    
                    broadcast.propagateNewPage = function () {};
                    $('#ajaxLoadingCalendar').remove();
                });
            }, done);
        });
    
        it("should expand when clicked", function (done) {
    
            expect.screenshot("expanded").to.be.captureSelector(selector, function (page) {
                page.click('.periodSelector .title');
    
            }, done);
        });
    
        it("should select a date when a date is clicked in day-period mode", function (done) {
    
            expect.screenshot("day_selected").to.be.captureSelector(selector, function (page) {
    
                page.click('.period-date .ui-datepicker-calendar a:contains(12)');
            }, done);
        });
    
        it("should change the month displayed when a month is selected in the month dropdown", function (done) {
    
            expect.screenshot("month_changed").to.be.captureSelector(selector, function (page) {
    
                page.evaluate(function () {
                    $('.ui-datepicker-month').val(1).trigger('change');
                });
            }, done);
        });
    
        it("should change the year displayed when a year is selected in the year dropdown", function (done) {
    
            expect.screenshot("year_changed").to.be.captureSelector(selector, function (page) {
    
                page.evaluate(function () {
                    $('.ui-datepicker-year').val(2013).trigger('change');
                });
            }, done);
        });
    
        it("should change the date when a date is clicked in week-period mode", function (done) {
    
            expect.screenshot("week_selected").to.be.captureSelector(selector, function (page) {
    
                page.click('label[for=period_id_week]');
                page.click('.period-date .ui-datepicker-calendar a:contains(13)');
            }, done);
        });
    
        it("should change the date when a date is clicked in month-period mode", function (done) {
    
            expect.screenshot("month_selected").to.be.captureSelector(selector, function (page) {
    
                page.click('label[for=period_id_month]');
                page.click('.period-date .ui-datepicker-calendar a:contains(14)');
            }, done);
        });
    
        it("should change the date when a date is clicked in year-period mode", function (done) {
    
            expect.screenshot("year_selected").to.be.captureSelector(selector, function (page) {
    
                page.click('label[for=period_id_year]');
                page.click('.period-date .ui-datepicker-calendar a:contains(15)');
            }, done);
        });
    
        it("should display the range picker when the range radio button is clicked", function (done) {
    
            expect.screenshot("range_picker_displayed").to.be.captureSelector(selector, function (page) {
    
                page.click('label[for=period_id_range]');
            }, done);
        });
    
        it("should change from & to dates when range picker calendar dates are clicked", function (done) {
    
            expect.screenshot("date_range_selected").to.be.captureSelector(selector, function (page) {
    
                page.click('#calendarFrom .ui-datepicker-calendar a:contains(10)');
                page.click('#calendarTo .ui-datepicker-calendar a:contains(18)');
    
                page.mouseMove('#calendarApply');