Inital commit
This commit is contained in:
249
tests/functionnal/casperjs/exe/front/60-newsletter.js
Normal file
249
tests/functionnal/casperjs/exe/front/60-newsletter.js
Normal file
@@ -0,0 +1,249 @@
|
||||
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();
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user