2014-11-10 23:12:33 +02:00
'use strict' ;
2015-07-25 16:53:11 -04:00
describe ( 'Users E2E Tests:' , function ( ) {
2015-10-07 19:52:44 -05:00
var user1 = {
firstName : 'test' ,
lastName : 'user' ,
email : 'test.user@meanjs.com' ,
username : 'testUser' ,
password : 'P@$$w0rd!!'
} ;
var user2 = {
firstName : 'test' ,
lastName : 'user2' ,
email : 'test.user2@meanjs.com' ,
username : 'testUser2' ,
password : 'P@$$w0rd!!'
} ;
var signout = function ( ) {
// Make sure user is signed out first
browser . get ( 'http://localhost:3001/authentication/signout' ) ;
// Delete all cookies
browser . driver . manage ( ) . deleteAllCookies ( ) ;
} ;
describe ( 'Signup Validation' , function ( ) {
it ( 'Should report missing first name' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter Last Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
2015-10-07 19:52:44 -05:00
// Enter Email
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
2015-10-07 19:52:44 -05:00
// Enter Username
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( user1 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// First Name Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'First name is required.' ) ;
} ) ;
it ( 'Should report missing last name' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
2015-10-07 19:52:44 -05:00
// Enter Email
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
2015-10-07 19:52:44 -05:00
// Enter Username
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( user1 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Last Name Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Last name is required.' ) ;
} ) ;
it ( 'Should report missing email address' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
2015-10-07 19:52:44 -05:00
// Enter Last Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
2015-10-07 19:52:44 -05:00
// Enter Username
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( user1 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Email address error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Email address is required.' ) ;
} ) ;
it ( 'Should report invalid email address - "123"' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
2015-10-07 19:52:44 -05:00
// Enter Last Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
2015-10-07 19:52:44 -05:00
// Enter Email
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( '123' ) ;
2015-10-07 19:52:44 -05:00
// Enter Username
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( user1 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Email address error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Email address is invalid.' ) ;
} ) ;
/ * *
* Note : 123 @ 123 is a valid email adress according to HTML5 .
* However , 123 @ 123 @ 123 is an invalid email address .
* /
it ( 'Should report invalid email address - "123@123@123"' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
2015-10-07 19:52:44 -05:00
// Enter Last Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
2015-10-07 19:52:44 -05:00
// Enter Email
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( '123@123@123' ) ;
2015-10-07 19:52:44 -05:00
// Enter Username
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( user1 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Email address error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Email address is invalid.' ) ;
} ) ;
2016-10-19 23:40:26 -04:00
it ( 'Should report invalid username - ".login"' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
// Enter Last Name
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
// Enter Email
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
// Enter Username
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( '.login' ) ;
// Enter Password
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user1 . password ) ;
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Email address error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Please enter a valid username: 3+ characters long, non restricted word, characters "_-.", no consecutive dots, does not begin or end with dots, letters a-z and numbers 0-9.' ) ;
} ) ;
it ( 'Should report invalid username - "login."' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
// Enter Last Name
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
// Enter Email
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
// Enter Username
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( 'login.' ) ;
// Enter Password
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user1 . password ) ;
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Email address error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Please enter a valid username: 3+ characters long, non restricted word, characters "_-.", no consecutive dots, does not begin or end with dots, letters a-z and numbers 0-9.' ) ;
} ) ;
it ( 'Should report invalid username - "log..in"' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
// Enter Last Name
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
// Enter Email
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
// Enter Username
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( 'log..in' ) ;
// Enter Password
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user1 . password ) ;
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Email address error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Please enter a valid username: 3+ characters long, non restricted word, characters "_-.", no consecutive dots, does not begin or end with dots, letters a-z and numbers 0-9.' ) ;
} ) ;
it ( 'Should report invalid username - "lo"' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
// Enter Last Name
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
// Enter Email
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
// Enter Username
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( 'lo' ) ;
// Enter Password
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user1 . password ) ;
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Email address error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Please enter a valid username: 3+ characters long, non restricted word, characters "_-.", no consecutive dots, does not begin or end with dots, letters a-z and numbers 0-9.' ) ;
} ) ;
it ( 'Should report invalid username - "log$in"' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
// Enter Last Name
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
// Enter Email
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
// Enter Username
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( 'log$in' ) ;
// Enter Password
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user1 . password ) ;
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Email address error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Please enter a valid username: 3+ characters long, non restricted word, characters "_-.", no consecutive dots, does not begin or end with dots, letters a-z and numbers 0-9.' ) ;
} ) ;
it ( 'Should signup username with . - "log.in"' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user2 . firstName ) ;
// Enter Last Name
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user2 . lastName ) ;
// Enter Email
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( 'someemail@meanjs.com' ) ;
// Enter Username
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( 'log.in' ) ;
// Enter Password
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user2 . password ) ;
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Signup successful with username having .
expect ( browser . getCurrentUrl ( ) ) . toEqual ( 'http://localhost:3001/' ) ;
signout ( ) ;
} ) ;
2016-10-19 17:59:45 +02:00
it ( 'Should report missing username' , function ( ) {
2015-10-07 19:52:44 -05:00
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
2015-10-07 19:52:44 -05:00
// Enter Last Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
2015-10-07 19:52:44 -05:00
// Enter Email
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
2015-10-07 19:52:44 -05:00
// Enter Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Username Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Username is required.' ) ;
} ) ;
it ( 'Should report a password with less than 10 characters long - "P@$$w0rd!"' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
2015-10-07 19:52:44 -05:00
// Enter Last Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
2015-10-07 19:52:44 -05:00
// Enter Email
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
2015-10-07 19:52:44 -05:00
// Enter Username
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( user1 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Invalid Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( 'P@$$w0rd!' ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'The password must be at least 10 characters long.' ) ;
} ) ;
it ( 'Should report a password with greater than 128 characters long.' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
2015-10-07 19:52:44 -05:00
// Enter Last Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
2015-10-07 19:52:44 -05:00
// Enter Email
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
2015-10-07 19:52:44 -05:00
// Enter Username
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( user1 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Invalid Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( ')!/uLT="lh&:`6X!]|15o!$!TJf,.13l?vG].-j],lFPe/QhwN#{Z<[*1nX@n1^?WW-%_.*D)m$toB+N7z}kcN#B_d(f41h%w@0F!]igtSQ1gl~6sEV&r~}~1ub>If1c+' ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'The password must be fewer than 128 characters.' ) ;
} ) ;
it ( 'Should report a password with more than 3 or more repeating characters - "P@$$w0rd!!!"' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
2015-10-07 19:52:44 -05:00
// Enter Last Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
2015-10-07 19:52:44 -05:00
// Enter Email
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
2015-10-07 19:52:44 -05:00
// Enter Username
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( user1 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Invalid Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( 'P@$$w0rd!!!' ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'The password may not contain sequences of three or more repeated characters.' ) ;
} ) ;
it ( 'Should report a password with no uppercase letters - "p@$$w0rd!!"' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
2015-10-07 19:52:44 -05:00
// Enter Last Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
2015-10-07 19:52:44 -05:00
// Enter Email
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
2015-10-07 19:52:44 -05:00
// Enter Username
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( user1 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Invalid Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( 'p@$$w0rd!!' ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'The password must contain at least one uppercase letter.' ) ;
} ) ;
it ( 'Should report a password with less than one number - "P@$$word!!"' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
2015-10-07 19:52:44 -05:00
// Enter Last Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
2015-10-07 19:52:44 -05:00
// Enter Email
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
2015-10-07 19:52:44 -05:00
// Enter Username
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( user1 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Invalid Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( 'P@$$word!!' ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'The password must contain at least one number.' ) ;
} ) ;
it ( 'Should report a password with less than one special character - "Passw0rdss"' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
2015-10-07 19:52:44 -05:00
// Enter Last Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
2015-10-07 19:52:44 -05:00
// Enter Email
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
2015-10-07 19:52:44 -05:00
// Enter Username
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( user1 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Invalid Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( 'Passw0rdss' ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'The password must contain at least one special character.' ) ;
} ) ;
it ( 'Should Successfully register new user' , function ( ) {
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter FirstName
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user1 . firstName ) ;
2015-10-07 19:52:44 -05:00
// Enter LastName
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user1 . lastName ) ;
2015-10-07 19:52:44 -05:00
// Enter Email
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
2015-10-07 19:52:44 -05:00
// Enter UserName
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( user1 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type="submit"]' ) ) . click ( ) ;
expect ( browser . getCurrentUrl ( ) ) . toEqual ( 'http://localhost:3001/' ) ;
} ) ;
it ( 'Should report Email already exists' , function ( ) {
// Make sure user is signed out first
signout ( ) ;
// Signup
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user2 . firstName ) ;
2015-10-07 19:52:44 -05:00
// Enter Last Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user2 . lastName ) ;
2015-10-07 19:52:44 -05:00
// Enter Email
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user1 . email ) ;
2015-10-07 19:52:44 -05:00
// Enter Username
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( user2 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Invalid Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user2 . password ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Error
2016-10-10 17:51:44 -04:00
expect ( element . all ( by . css ( '.message' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Email already exists' ) ;
2015-10-07 19:52:44 -05:00
} ) ;
it ( 'Should report Username already exists' , function ( ) {
// Signup
browser . get ( 'http://localhost:3001/authentication/signup' ) ;
// Enter First Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.firstName' ) ) . sendKeys ( user2 . firstName ) ;
2015-10-07 19:52:44 -05:00
// Enter Last Name
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.lastName' ) ) . sendKeys ( user2 . lastName ) ;
2015-10-07 19:52:44 -05:00
// Enter Email
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.email' ) ) . sendKeys ( user2 . email ) ;
2015-10-07 19:52:44 -05:00
// Enter Username
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.username' ) ) . sendKeys ( user1 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Invalid Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user2 . password ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Error
2016-10-10 17:51:44 -04:00
expect ( element . all ( by . css ( '.message' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Username already exists' ) ;
2015-10-07 19:52:44 -05:00
} ) ;
} ) ;
2015-07-25 16:53:11 -04:00
describe ( 'Signin Validation' , function ( ) {
2015-10-07 19:52:44 -05:00
2015-07-25 16:53:11 -04:00
it ( 'Should report missing credentials' , function ( ) {
2015-12-10 20:31:51 +01:00
// Make sure user is signed out first
2015-10-07 19:52:44 -05:00
signout ( ) ;
2015-12-10 20:31:51 +01:00
// Sign in
2015-09-26 22:01:50 -04:00
browser . get ( 'http://localhost:3001/authentication/signin' ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type="submit"]' ) ) . click ( ) ;
2015-09-26 22:01:50 -04:00
// Username Error
2016-10-06 11:34:15 -04:00
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Username or Email is required.' ) ;
2015-09-26 22:01:50 -04:00
// Password Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 1 ) . getText ( ) ) . toBe ( 'Password is required.' ) ;
2015-07-25 16:53:11 -04:00
} ) ;
2015-10-07 19:52:44 -05:00
it ( 'Verify that the user is logged in' , function ( ) {
2015-12-10 20:31:51 +01:00
// Make sure user is signed out first
2015-10-07 19:52:44 -05:00
signout ( ) ;
2015-12-10 20:31:51 +01:00
// Sign in
2015-10-07 19:52:44 -05:00
browser . get ( 'http://localhost:3001/authentication/signin' ) ;
// Enter UserName
2016-10-06 11:34:15 -04:00
element ( by . model ( 'vm.credentials.usernameOrEmail' ) ) . sendKeys ( user1 . username ) ;
2015-10-07 19:52:44 -05:00
// Enter Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.credentials.password' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type="submit"]' ) ) . click ( ) ;
expect ( browser . getCurrentUrl ( ) ) . toEqual ( 'http://localhost:3001/' ) ;
} ) ;
} ) ;
2015-12-10 20:31:51 +01:00
describe ( 'Change Password Settings Validation' , function ( ) {
2015-10-07 19:52:44 -05:00
it ( 'Should report missing passwords' , function ( ) {
browser . get ( 'http://localhost:3001/settings/password' ) ;
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Errors
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Your current password is required.' ) ;
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 1 ) . getText ( ) ) . toBe ( 'Enter a new password.' ) ;
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 2 ) . getText ( ) ) . toBe ( 'Verify your new password.' ) ;
} ) ;
it ( 'Should report a password with less than 10 characters long - "P@$$w0rd!"' , function ( ) {
browser . get ( 'http://localhost:3001/settings/password' ) ;
// Enter Current Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.currentPassword' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Enter Invalid Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.newPassword' ) ) . sendKeys ( 'P@$$w0rd!' ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'The password must be at least 10 characters long.' ) ;
} ) ;
it ( 'Should report a password with greater than 128 characters long.' , function ( ) {
browser . get ( 'http://localhost:3001/settings/password' ) ;
// Enter Current Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.currentPassword' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Enter Invalid Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.newPassword' ) ) . sendKeys ( ')!/uLT="lh&:`6X!]|15o!$!TJf,.13l?vG].-j],lFPe/QhwN#{Z<[*1nX@n1^?WW-%_.*D)m$toB+N7z}kcN#B_d(f41h%w@0F!]igtSQ1gl~6sEV&r~}~1ub>If1c+' ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'The password must be fewer than 128 characters.' ) ;
} ) ;
it ( 'Should report a password with more than 3 or more repeating characters - "P@$$w0rd!!!"' , function ( ) {
browser . get ( 'http://localhost:3001/settings/password' ) ;
// Enter Current Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.currentPassword' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Enter Invalid Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.newPassword' ) ) . sendKeys ( 'P@$$w0rd!!!' ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'The password may not contain sequences of three or more repeated characters.' ) ;
} ) ;
it ( 'Should report a password with no uppercase letters - "p@$$w0rd!!"' , function ( ) {
browser . get ( 'http://localhost:3001/settings/password' ) ;
// Enter Current Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.currentPassword' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Enter Invalid Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.newPassword' ) ) . sendKeys ( 'p@$$w0rd!!' ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'The password must contain at least one uppercase letter.' ) ;
} ) ;
it ( 'Should report a password with less than one number - "P@$$word!!"' , function ( ) {
browser . get ( 'http://localhost:3001/settings/password' ) ;
// Enter Current Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.currentPassword' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Enter Invalid Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.newPassword' ) ) . sendKeys ( 'P@$$word!!' ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'The password must contain at least one number.' ) ;
} ) ;
it ( 'Should report a password with less than one special character - "Passw0rdss"' , function ( ) {
browser . get ( 'http://localhost:3001/settings/password' ) ;
// Enter Current Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.currentPassword' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Enter Invalid Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.newPassword' ) ) . sendKeys ( 'Passw0rdss' ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Error
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'The password must contain at least one special character.' ) ;
} ) ;
it ( 'Should report passwords do not match' , function ( ) {
browser . get ( 'http://localhost:3001/settings/password' ) ;
// Enter Current Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.currentPassword' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Enter New Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.newPassword' ) ) . sendKeys ( 'P@$$w0rds!!' ) ;
2015-10-07 19:52:44 -05:00
// Verify New Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.verifyPassword' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Errors
expect ( element . all ( by . css ( '.error-text' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Passwords do not match.' ) ;
} ) ;
it ( 'Should change the password to - "P@$$w0rds!!"' , function ( ) {
browser . get ( 'http://localhost:3001/settings/password' ) ;
// Enter Current Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.currentPassword' ) ) . sendKeys ( user1 . password ) ;
2015-10-07 19:52:44 -05:00
// Enter New Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.newPassword' ) ) . sendKeys ( 'P@$$w0rds!!' ) ;
2015-10-07 19:52:44 -05:00
// Verify New Password
2016-02-11 22:34:20 -03:00
element ( by . model ( 'vm.passwordDetails.verifyPassword' ) ) . sendKeys ( 'P@$$w0rds!!' ) ;
2015-10-07 19:52:44 -05:00
// Click Submit button
element ( by . css ( 'button[type=submit]' ) ) . click ( ) ;
// Password Changed
2016-10-10 17:51:44 -04:00
expect ( element . all ( by . css ( '.ui-notification' ) ) . get ( 0 ) . getText ( ) ) . toBe ( 'Password Changed Successfully' ) ;
2015-10-07 19:52:44 -05:00
} ) ;
2015-07-25 16:53:11 -04:00
} ) ;
2014-11-10 23:12:33 +02:00
} ) ;