forked from ungleich-public/dynamicweb
82 lines
3.3 KiB
JavaScript
82 lines
3.3 KiB
JavaScript
'use strict';
|
|
|
|
// #############################################################################
|
|
// Switch language via the admin panel
|
|
|
|
var casperjs = require('casper');
|
|
var helpers = require('djangocms-casper-helpers');
|
|
var randomString = helpers.randomString;
|
|
var globals = helpers.settings;
|
|
var cms = helpers(casperjs);
|
|
var xPath = casperjs.selectXPath;
|
|
|
|
// random text string for filtering and content purposes
|
|
var randomText = randomString({ length: 50, withWhitespaces: false });
|
|
// No Preview Template text
|
|
var noPreviewText = 'This page has no preview';
|
|
|
|
casper.test.setUp(function(done) {
|
|
casper.start().then(cms.login()).then(cms.addPage({ title: 'First page' })).run(done);
|
|
});
|
|
|
|
casper.test.tearDown(function(done) {
|
|
casper.start().then(cms.removePage()).then(cms.logout()).run(done);
|
|
});
|
|
|
|
casper.test.begin('Switch language', function(test) {
|
|
casper
|
|
.start(globals.editUrl)
|
|
// click on language bar
|
|
.waitForSelector('.cms-toolbar-expanded', function() {
|
|
this.click(xPath(cms.createToolbarItemXPath('Language')));
|
|
})
|
|
// select german language
|
|
.waitUntilVisible('.cms-toolbar-item-navigation-hover ul', function() {
|
|
this.click('.cms-toolbar-item-navigation-hover a[href="/de/"]');
|
|
})
|
|
// no page should be here (warning message instead)
|
|
.wait(300)
|
|
.waitForSelector('.cms-toolbar-expanded', function() {
|
|
test.assertSelectorHasText('.cms-screenblock-inner h1', noPreviewText, "This page isn't available");
|
|
this.click(xPath(cms.createToolbarItemXPath('Language')));
|
|
})
|
|
// add german translation
|
|
.waitUntilVisible('.cms-toolbar-item-navigation-hover ul', function() {
|
|
this.click('.cms-toolbar-item-navigation-hover a[href*="?language=de"]');
|
|
})
|
|
// open Change pane modal and fill with data
|
|
.waitUntilVisible('.cms-modal-open')
|
|
.withFrame(0, function() {
|
|
this.fill('#page_form', {
|
|
title: randomText,
|
|
slug: randomText
|
|
});
|
|
})
|
|
// submit Change pane modal
|
|
.then(function() {
|
|
this.click('.cms-modal-open .cms-modal-item-buttons .cms-btn-action');
|
|
})
|
|
// check if german version appears
|
|
.waitWhileVisible('.cms-modal-open', function() {
|
|
test.assertSelectorHasText('ul.nav > .child > a[href="/de/"]', randomText, 'New translation page appears');
|
|
})
|
|
// click on language bar
|
|
.waitForSelector('.cms-toolbar-expanded', function() {
|
|
this.click(xPath(cms.createToolbarItemXPath('Language')));
|
|
})
|
|
// delete german translation
|
|
.waitUntilVisible('.cms-toolbar-item-navigation-hover ul', function() {
|
|
this.click('.cms-toolbar-item-navigation-hover a[href*="delete-translation/?language=de"]');
|
|
})
|
|
// submit translation deletion
|
|
.waitUntilVisible('.cms-modal-open', function() {
|
|
this.click('.cms-modal-open .cms-modal-item-buttons .cms-btn.deletelink');
|
|
})
|
|
// make sure translation has been deleted
|
|
.waitWhileVisible('.cms-modal-open', function() {
|
|
test.assertSelectorHasText('.cms-screenblock-inner h1', noPreviewText, "This page isn't available");
|
|
})
|
|
.run(function() {
|
|
test.done();
|
|
});
|
|
});
|