249 lines
8.0 KiB
JavaScript
249 lines
8.0 KiB
JavaScript
casper.test.comment('== Newsletter ==');
|
|
|
|
casper.test.begin('Newsletter', 12, function suite(test) {
|
|
|
|
var newEmail = '';
|
|
|
|
casper.start(thelia2_base_url + "newsletter", function() {
|
|
if (this.exists('.navbar-customer .logout')) {
|
|
this.click('.navbar-customer .logout');
|
|
|
|
}
|
|
});
|
|
|
|
casper.thenOpen(thelia2_base_url + "newsletter", function(){
|
|
test.assertTitle("Newsletter - Thelia V2", "title is the one expected");
|
|
});
|
|
|
|
casper.waitForSelector(
|
|
'.navbar-customer .register',
|
|
function() {
|
|
test.assertExists('.navbar-customer .register', 'user is disconnected');
|
|
|
|
test.assertExists('form#form-newsletter', "newsletter form is found");
|
|
|
|
casper.test.comment("== User isn't connected");
|
|
|
|
test.assertExists('form#form-newsletter #firstname_newsletter', 'firstname field is displayed');
|
|
test.assertExists('form#form-newsletter #lastname_newsletter', 'lastname field is displayed');
|
|
|
|
if (screenshot_enabled) {
|
|
this.capture(screenshot_dir + 'front/60_newsletter.png');
|
|
}
|
|
|
|
casper.test.comment('== Newsletter blank submission');
|
|
|
|
this.fill('form#form-newsletter', {
|
|
'thelia_newsletter[email]': '',
|
|
'thelia_newsletter[firstname]': 'Thelia',
|
|
'thelia_newsletter[lastname]': 'Thelia'
|
|
}, true);
|
|
},
|
|
function(){
|
|
this.die("Select '.navbar-customer .register' not found");
|
|
},
|
|
thelia_default_timeout
|
|
);
|
|
|
|
|
|
casper.waitForSelector(
|
|
'#email_newsletter',
|
|
function(){
|
|
casper.evaluate(function(email) {
|
|
document.querySelector('#email_newsletter').value = email;
|
|
}, '');
|
|
|
|
this.click('form#form-newsletter button[type="submit"]');
|
|
},
|
|
function(){
|
|
this.die("'email' field in newsletter form not found");
|
|
},
|
|
thelia_default_timeout
|
|
);
|
|
|
|
casper.waitForSelector(
|
|
'form#form-newsletter .group-email.has-error',
|
|
function(){
|
|
if (screenshot_enabled) {
|
|
this.capture(screenshot_dir + 'front/60_newsletter-ko-0.png');
|
|
}
|
|
test.assertExists('form#form-newsletter .group-email.has-error', 'email can not be empty');
|
|
},function(){
|
|
this.die("Can't find newsletter form error");
|
|
},
|
|
thelia_default_timeout
|
|
);
|
|
|
|
casper.waitForSelector(
|
|
'form#form-newsletter',
|
|
function(){
|
|
casper.test.comment('== Test submission');
|
|
|
|
this.fill('form#form-newsletter', {
|
|
'thelia_newsletter[email]': 'test@thelia.net',
|
|
'thelia_newsletter[firstname]': 'Thelia',
|
|
'thelia_newsletter[lastname]': 'Thelia'
|
|
}, true);
|
|
|
|
casper.evaluate(function(email) {
|
|
document.querySelector('#email_newsletter').value = email;
|
|
}, 'test@thelia.net');
|
|
|
|
this.click('form#form-newsletter button[type="submit"]');
|
|
},
|
|
function() {
|
|
this.die("Newsletter form not found");
|
|
},
|
|
thelia_default_timeout
|
|
);
|
|
|
|
casper.waitForSelector(
|
|
'form#form-newsletter',
|
|
function(){
|
|
casper.test.comment('== Existing email on submission');
|
|
|
|
this.fill('form#form-newsletter', {
|
|
'thelia_newsletter[email]': 'test@thelia.net',
|
|
'thelia_newsletter[firstname]': 'Thelia',
|
|
'thelia_newsletter[lastname]': 'Thelia'
|
|
}, true);
|
|
|
|
casper.evaluate(function(email) {
|
|
document.querySelector('#email_newsletter').value = email;
|
|
}, 'test@thelia.net');
|
|
|
|
this.click('form#form-newsletter button[type="submit"]');
|
|
},
|
|
function(){
|
|
this.die("Newsletter form not found");
|
|
},
|
|
thelia_default_timeout
|
|
);
|
|
|
|
casper.waitForSelector(
|
|
'form#form-newsletter .group-email.has-error',
|
|
function(){
|
|
if (screenshot_enabled) {
|
|
this.capture(screenshot_dir + 'front/60_newsletter-ko-0.png');
|
|
}
|
|
test.assertExists('form#form-newsletter .group-email.has-error', 'email already exist');
|
|
},
|
|
function(){
|
|
this.die("Newsletter form error message not found");
|
|
},
|
|
thelia_default_timeout
|
|
);
|
|
|
|
casper.waitForSelector(
|
|
'form#form-newsletter',
|
|
function(){
|
|
casper.test.comment('== Great email on submission');
|
|
|
|
newEmail = Math.random().toString(36).substr(2,7) + '@thelia.net';
|
|
|
|
this.fill('form#form-newsletter', {
|
|
'thelia_newsletter[email]': newEmail,
|
|
'thelia_newsletter[firstname]': 'Thelia',
|
|
'thelia_newsletter[lastname]': 'Thelia'
|
|
}, true);
|
|
|
|
casper.evaluate(function(email) {
|
|
document.querySelector('#email_newsletter').value = email;
|
|
}, newEmail);
|
|
|
|
this.click('form#form-newsletter button[type="submit"]');
|
|
},
|
|
function(){
|
|
this.die("Newsletter form not found");
|
|
},
|
|
thelia_default_timeout
|
|
);
|
|
|
|
casper.waitForSelector(
|
|
'form#form-newsletter .group-email.has-success',
|
|
function(){
|
|
if (screenshot_enabled) {
|
|
this.capture(screenshot_dir + 'front/60_newsletter-ok-0.png');
|
|
}
|
|
test.assertExists('form#form-newsletter .group-email.has-success', 'subscription with success');
|
|
},
|
|
function(){
|
|
this.die("Newsletter form success message not found");
|
|
},
|
|
thelia_default_timeout
|
|
);
|
|
|
|
casper.waitForSelector(
|
|
'#email-mini',
|
|
function(){
|
|
casper.test.comment('== Login user');
|
|
|
|
casper.evaluate(function(username, password) {
|
|
document.querySelector('#email-mini').value = username;
|
|
document.querySelector('#password-mini').value = password;
|
|
}, 'test@thelia.net', 'azerty');
|
|
|
|
this.click('form#form-login-mini button[type="submit"]');
|
|
},
|
|
function(){
|
|
this.die("Newsletter form 'email-mini' field not found");
|
|
},
|
|
thelia_default_timeout
|
|
);
|
|
|
|
casper.waitForSelector(
|
|
'a.logout',
|
|
function(){
|
|
if (screenshot_enabled) {
|
|
this.capture(screenshot_dir + 'front/60_newsletter-ok-1.png');
|
|
}
|
|
test.assertExists('a.logout', 'Logout button exists');
|
|
test.assertDoesntExist('form#form-newsletter #firstname_newsletter', "firstname field doesn't exist");
|
|
test.assertDoesntExist('form#form-newsletter #lastname_newsletter', "lastname field doesn't exist");
|
|
},
|
|
function(){
|
|
this.die("Logout button not found");
|
|
},
|
|
thelia_default_timeout
|
|
);
|
|
|
|
casper.waitForSelector(
|
|
'form#form-newsletter',
|
|
function(){
|
|
casper.test.comment('== Subscribe again');
|
|
|
|
this.fill('form#form-newsletter', {
|
|
'thelia_newsletter[email]': 'test@thelia.net'
|
|
}, true);
|
|
|
|
casper.evaluate(function(email) {
|
|
document.querySelector('#email_newsletter').value = email;
|
|
}, 'test@thelia.net');
|
|
|
|
this.click('form#form-newsletter button[type="submit"]');
|
|
},
|
|
function(){
|
|
this.die("Newsletter form not found");
|
|
},
|
|
thelia_default_timeout
|
|
);
|
|
|
|
casper.waitForSelector(
|
|
'form#form-newsletter .group-email.has-error',
|
|
function(){
|
|
if (screenshot_enabled) {
|
|
this.capture(screenshot_dir + 'front/60_newsletter-ko-1.png');
|
|
}
|
|
test.assertExists('form#form-newsletter .group-email.has-error', 'this user is already registered');
|
|
},
|
|
function(){
|
|
this.die("Newsletter form error message not found");
|
|
},
|
|
thelia_default_timeout
|
|
);
|
|
|
|
casper.run(function() {
|
|
test.done();
|
|
});
|
|
|
|
}); |