Zfilipin has uploaded a new change for review.
https://gerrit.wikimedia.org/r/323401
Change subject: WIP Port Selenium tests from Ruby to Node.js
......................................................................
WIP Port Selenium tests from Ruby to Node.js
Bug: T139740
Change-Id: Idbc3c2aad266b3b7ea363d41718a94fc9a8c951b
---
M Gruntfile.js
M package.json
A tests/selenium/page.js
A tests/selenium/user.js
4 files changed, 98 insertions(+), 2 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/01/323401/1
diff --git a/Gruntfile.js b/Gruntfile.js
index 55b7932..12d6744 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -11,6 +11,7 @@
grunt.loadNpmTasks( 'grunt-contrib-watch' );
grunt.loadNpmTasks( 'grunt-eslint' );
grunt.loadNpmTasks( 'grunt-jsonlint' );
+ grunt.loadNpmTasks( 'grunt-mocha-test' );
grunt.loadNpmTasks( 'grunt-karma' );
grunt.loadNpmTasks( 'grunt-stylelint' );
@@ -98,6 +99,15 @@
return require( 'path' ).join( dest,
src.replace( 'resources/', '' ) );
}
}
+ },
+ mochaTest: {
+ selenium: {
+ options: {
+ reporter: 'spec',
+ timeout: 10000
+ },
+ src: [ 'tests/selenium/*.js' ]
+ }
}
} );
@@ -116,7 +126,8 @@
grunt.registerTask( 'lint', [ 'eslint', 'banana', 'stylelint' ] );
grunt.registerTask( 'qunit', [ 'assert-mw-env', 'karma:main' ] );
+ grunt.registerTask( 'selenium', [ 'mochaTest' ] );
- grunt.registerTask( 'test', [ 'lint' ] );
+ grunt.registerTask( 'test', [ 'lint', 'selenium' ] );
grunt.registerTask( 'default', 'test' );
};
diff --git a/package.json b/package.json
index 99e752c..1d43e92 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,8 @@
"scripts": {
"test": "grunt test",
"doc": "jsduck",
- "postdoc": "grunt copy:jsduck"
+ "postdoc": "grunt copy:jsduck",
+ "selenium": "grunt mochaTest"
},
"devDependencies": {
"eslint-config-wikimedia": "0.3.0",
@@ -20,6 +21,7 @@
"karma-firefox-launcher": "1.0.0",
"karma-qunit": "1.0.0",
"qunitjs": "1.22.0",
+ "selenium-webdriver": "2.53.3",
"stylelint-config-wikimedia": "0.3.0"
}
}
diff --git a/tests/selenium/page.js b/tests/selenium/page.js
new file mode 100644
index 0000000..d6a19ca
--- /dev/null
+++ b/tests/selenium/page.js
@@ -0,0 +1,39 @@
+var assert = require( 'assert' ),
+ webdriver = require( 'selenium-webdriver' ),
+ By = webdriver.By,
+ test = require( 'selenium-webdriver/testing' );
+
+test.describe( 'Page', function () {
+ var driver;
+
+ test.beforeEach( function () {
+ driver = new webdriver.Builder()
+ .forBrowser( 'firefox' )
+ .build();
+ } );
+
+ test.afterEach( function () {
+ driver.quit();
+ } );
+
+ test.it( 'should be created', function () {
+ driver.get( 'http://127.0.0.1:8080/wiki/Does_not_exist' );
+ driver.findElement( By.css( 'li#ca-edit a' )
).isDisplayed().then( function ( displayed ) {
+ assert( displayed );
+ } );
+ } );
+
+ test.it( 'should be edited', function () {
+ driver.get( 'http://127.0.0.1:8080/wiki/Main_Page' );
+ driver.findElement( By.css( 'li#ca-edit a' )
).isDisplayed().then( function ( displayed ) {
+ assert( displayed );
+ } );
+ } );
+
+ test.it( 'should have history', function () {
+ driver.get( 'http://127.0.0.1:8080/wiki/Main_Page' );
+ driver.findElement( By.css( 'li#ca-history a' )
).isDisplayed().then( function ( displayed ) {
+ assert( displayed );
+ } );
+ } );
+} );
diff --git a/tests/selenium/user.js b/tests/selenium/user.js
new file mode 100644
index 0000000..d24aea8
--- /dev/null
+++ b/tests/selenium/user.js
@@ -0,0 +1,44 @@
+var assert = require( 'assert' ),
+ webdriver = require( 'selenium-webdriver' ),
+ By = webdriver.By,
+ test = require( 'selenium-webdriver/testing' );
+
+test.describe( 'User', function () {
+ var driver;
+
+ test.beforeEach( function () {
+ driver = new webdriver.Builder()
+ .forBrowser( 'firefox' )
+ .build();
+ } );
+
+ test.afterEach( function () {
+ driver.quit();
+ } );
+
+ test.it( 'should be able to create account', function () {
+ driver.get( 'http://127.0.0.1:8080/wiki/Special:CreateAccount'
);
+ driver.findElement( By.id( 'wpCreateaccount' )
).isDisplayed().then( function ( displayed ) {
+ assert( displayed );
+ } );
+ } );
+
+ test.it( 'should be able to log in', function () {
+ driver.get( 'http://127.0.0.1:8080/wiki/Special:UserLogin' );
+ driver.findElement( By.id( 'wpLoginAttempt' )
).isDisplayed().then( function ( displayed ) {
+ assert( displayed );
+ } );
+ } );
+
+ test.it( 'should be able to change preferences', function () {
+ driver.get( 'http://127.0.0.1:8080/wiki/Special:UserLogin' );
+ driver.findElement( By.id( 'wpName1' ) ).sendKeys( 'Admin' );
+ driver.findElement( By.id( 'wpPassword1' ) ).sendKeys(
'vagrant' );
+ driver.findElement( By.id( 'wpLoginAttempt' ) ).click();
+
+ driver.get( 'http://127.0.0.1:8080/wiki/Special:Preferences' );
+ driver.findElement( By.id( 'prefcontrol' )
).isDisplayed().then( function ( displayed ) {
+ assert( displayed );
+ } );
+ } );
+} );
--
To view, visit https://gerrit.wikimedia.org/r/323401
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Idbc3c2aad266b3b7ea363d41718a94fc9a8c951b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Zfilipin <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits