forked from ungleich-public/dynamicweb
134 lines
5.2 KiB
JavaScript
134 lines
5.2 KiB
JavaScript
'use strict';
|
|
|
|
// #############################################################################
|
|
// User login via the admin panel
|
|
|
|
var helpers = require('djangocms-casper-helpers');
|
|
var globals = helpers.settings;
|
|
var randomString = helpers.randomString;
|
|
var casperjs = require('casper');
|
|
var xPath = casperjs.selectXPath;
|
|
var cms = helpers(casperjs);
|
|
// random text string for filtering and content purposes
|
|
var randomText = randomString({ length: 50, withWhitespaces: false });
|
|
|
|
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('User Add Content', function(test) {
|
|
casper
|
|
.start(globals.editUrl)
|
|
.then(function () {
|
|
this.click('.cms-btn-switch-edit');
|
|
})
|
|
.wait(2000)
|
|
.then(cms.switchTo('structure'))
|
|
.waitUntilVisible('.cms-structure', function() {
|
|
this.click('.cms-submenu-add [data-cms-tooltip="Add plugin"]');
|
|
})
|
|
// cancel plugin creation and ensure no empty plugin
|
|
.waitUntilVisible('.cms-plugin-picker .cms-submenu-item [data-rel="add"]', function() {
|
|
this.click('.cms-plugin-picker .cms-submenu-item [data-rel="add"]');
|
|
})
|
|
.waitForResource(/add-plugin/)
|
|
.wait(2000)
|
|
.withFrame(0, function() {
|
|
// wait until modal fully loads
|
|
return this.waitUntilVisible('#content');
|
|
})
|
|
.then(function() {
|
|
// click on the "Cancel" button
|
|
this.click('.cms-modal-item-buttons:last-child a');
|
|
})
|
|
.waitWhileVisible('.cms-modal-open')
|
|
.then(cms.switchTo('content'))
|
|
.waitWhileVisible('.cms-structure', function() {
|
|
test.assertSelectorDoesntHaveText('.cms-plugin', randomText, "Empty plugin hasn't been created");
|
|
})
|
|
.then(cms.switchTo('structure'))
|
|
// full plugin creation process
|
|
.waitUntilVisible('.cms-structure', function() {
|
|
this.click('.cms-submenu-add [data-cms-tooltip="Add plugin"]');
|
|
})
|
|
.waitUntilVisible('.cms-plugin-picker .cms-submenu-item [data-rel="add"]', function() {
|
|
this.sendKeys('.cms-quicksearch input', randomText);
|
|
this.waitWhileVisible('.cms-plugin-picker .cms-submenu-item [data-rel="add"]', function() {
|
|
test.assertNotVisible(
|
|
'.cms-plugin-picker .cms-submenu-item [data-rel="add"]',
|
|
'No filtered results for random string'
|
|
);
|
|
this.sendKeys('.cms-quicksearch input', 'text', { reset: true });
|
|
});
|
|
this.waitUntilVisible('.cms-plugin-picker .cms-submenu-item [data-rel="add"]', function() {
|
|
this.waitFor(function() {
|
|
return this.evaluate(function() {
|
|
return CMS.$('.cms-submenu-item [data-rel="add"]:visible').length === 1;
|
|
});
|
|
}).then(function() {
|
|
test.assertVisible(
|
|
'.cms-plugin-picker .cms-submenu-item [data-rel="add"]',
|
|
'There is text plugin available by the filter: text'
|
|
);
|
|
});
|
|
});
|
|
this.then(function() {
|
|
this.click(
|
|
xPath('//div[contains(@class, "cms-modal")]//a[@data-rel="add"]/text()[normalize-space(.)="Text"]')
|
|
);
|
|
});
|
|
// ensure previous content has been changed
|
|
this.waitWhileVisible('.cms-plugin-picker .cms-submenu-item [data-rel="add"]');
|
|
})
|
|
.withFrame(0, function() {
|
|
casper.waitUntilVisible('.cke_inner', function() {
|
|
// explicitly put text to ckeditor
|
|
this.evaluate(function(contentData) {
|
|
CMS.CKEditor.editor.setData(contentData);
|
|
}, randomText);
|
|
});
|
|
})
|
|
.then(function() {
|
|
this.click('.cms-modal-buttons .cms-btn-action.default');
|
|
})
|
|
.then(cms.waitUntilContentIsRefreshed())
|
|
.then(cms.switchTo('content'))
|
|
.then(function() {
|
|
test.assertSelectorHasText('p.cms-plugin', randomText, 'Newly created text plugin can be seen on page');
|
|
})
|
|
.run(function() {
|
|
test.done();
|
|
});
|
|
});
|
|
|
|
casper.test.begin('Can switch mode by triggering space', function(test) {
|
|
casper
|
|
.start(globals.editUrl)
|
|
.then(
|
|
cms.addPlugin({
|
|
type: 'TextPlugin',
|
|
content: {
|
|
id_body: 'sample text'
|
|
}
|
|
})
|
|
)
|
|
.then(function() {
|
|
// triggers space
|
|
this.sendKeys('html', casper.page.event.key.Space);
|
|
test.assertDoesntExist('.cms-structure-mode-structure', 'switch via space worked');
|
|
})
|
|
.then(function() {
|
|
// triggers space again
|
|
this.sendKeys('html', casper.page.event.key.Space);
|
|
})
|
|
.wait(100, function() {
|
|
test.assertExists('.cms-structure-mode-structure', 'switch via space worked');
|
|
})
|
|
.run(function() {
|
|
test.done();
|
|
});
|
|
});
|