[MediaWiki-commits] [Gerrit] mediawiki...cxserver[master]: Unit tests for MWLink translation unit class

2017-08-25 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/373279 )

Change subject: Unit tests for MWLink translation unit class
..


Unit tests for MWLink translation unit class

Change-Id: I25ffb50cf7c27ca1f5cf71176d31465fde470db0
---
M lib/translationunits/MWLink.js
M test/index.js
A test/translationunits/MWLink.test.js
A test/translationunits/MWLink.test.json
4 files changed, 265 insertions(+), 0 deletions(-)

Approvals:
  jenkins-bot: Verified
  Nikerabbit: Looks good to me, approved



diff --git a/lib/translationunits/MWLink.js b/lib/translationunits/MWLink.js
index c6c7bc5..51455e1 100644
--- a/lib/translationunits/MWLink.js
+++ b/lib/translationunits/MWLink.js
@@ -30,6 +30,7 @@
if ( linkPairInfo.targetTitle ) {
// NOTE: This paths we are setting here are not relative paths.
this.node.attributes[ 'href' ] = linkPairInfo.targetTitle;
+   this.node.attributes[ 'title' ] = linkPairInfo.targetTitle;
adaptationInfo.targetTitle = yield 
apiRequestManager.titleInfoRequest(
linkPairInfo.targetTitle, this.targetLanguage
);
diff --git a/test/index.js b/test/index.js
index b6feadd..142b56e 100644
--- a/test/index.js
+++ b/test/index.js
@@ -13,6 +13,7 @@
'lib/pageloader',
'lib/routes',
'lib/segmentation',
+   'lib/translationunits',
'tests/**/*.js'
 ];
 
diff --git a/test/translationunits/MWLink.test.js 
b/test/translationunits/MWLink.test.js
new file mode 100644
index 000..13e6f7b
--- /dev/null
+++ b/test/translationunits/MWLink.test.js
@@ -0,0 +1,36 @@
+'use strict';
+
+var assert = require( '../utils/assert.js' ),
+   server = require( '../utils/server.js' ),
+   async = require( 'async' ),
+   Adapter = require( '../../lib/Adapter' ),
+   tests = require( './MWLink.test.json' );
+
+describe( 'Link Adaptation tests', function () {
+   async.forEach( tests, function ( test ) {
+   it( 'should not have any errors when: ' + test.desc, function 
() {
+   var translationunit, adapter;
+
+   adapter = new Adapter( test.from, test.to, 
server.config );
+   translationunit = adapter.getAdapter( test.source );
+   return translationunit.adapt( test.source ).then( 
function ( adaptedNode ) {
+   let expectedDataCX, actualDataCX;
+   assert.deepEqual( adaptedNode.attributes.href, 
test.result.attributes.href );
+   assert.deepEqual( adaptedNode.attributes.rel, 
test.result.attributes.rel );
+   assert.deepEqual( adaptedNode.attributes.title, 
test.result.attributes.title );
+   expectedDataCX = JSON.parse( 
adaptedNode.attributes[ 'data-cx' ] );
+   actualDataCX = test.result.attributes[ 
'data-cx' ];
+   assert.deepEqual( expectedDataCX.adapted, 
actualDataCX.adapted );
+   assert.deepEqual( 
!!actualDataCX.sourceTitle.thumbnail, !!expectedDataCX.sourceTitle.thumbnail );
+   assert.deepEqual( 
!!actualDataCX.sourceTitle.pageimage, !!expectedDataCX.sourceTitle.pageimage );
+   assert.ok( !!actualDataCX.sourceTitle.terms, 
!!expectedDataCX.sourceTitle.terms );
+   if ( expectedDataCX.adapted ) {
+   assert.deepEqual( 
expectedDataCX.targetTitle.pageid, actualDataCX.targetTitle.pageid );
+   assert.deepEqual( 
!!actualDataCX.targetTitle.thumbnail, !!expectedDataCX.targetTitle.thumbnail );
+   assert.deepEqual( 
!!actualDataCX.targetTitle.pageimage, !!expectedDataCX.targetTitle.pageimage );
+   assert.deepEqual( 
!!actualDataCX.targetTitle.terms, !!expectedDataCX.targetTitle.terms );
+   }
+   } );
+   } );
+   } );
+} );
diff --git a/test/translationunits/MWLink.test.json 
b/test/translationunits/MWLink.test.json
new file mode 100644
index 000..118137c
--- /dev/null
+++ b/test/translationunits/MWLink.test.json
@@ -0,0 +1,227 @@
+[
+   {
+   "desc": "Basic test",
+   "from": "en",
+   "to": "es",
+   "source": {
+   "attributes": {
+   "rel": "mw:WikiLink",
+   "href": "Oxygen",
+   "title": "Oxygen"
+   }
+   },
+   "result": {
+   "attributes": {
+   "rel": "mw:WikiLink",
+   "href": 

[MediaWiki-commits] [Gerrit] mediawiki...cxserver[master]: Unit tests for MWLink translation unit class

2017-08-23 Thread Santhosh (Code Review)
Santhosh has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/373279 )

Change subject: Unit tests for MWLink translation unit class
..

Unit tests for MWLink translation unit class

Change-Id: I25ffb50cf7c27ca1f5cf71176d31465fde470db0
---
M lib/translationunits/MWLink.js
M test/index.js
A test/translationunits/MWLink.test.js
A test/translationunits/MWLink.test.json
4 files changed, 313 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/cxserver 
refs/changes/79/373279/1

diff --git a/lib/translationunits/MWLink.js b/lib/translationunits/MWLink.js
index d28269d..01e1345 100644
--- a/lib/translationunits/MWLink.js
+++ b/lib/translationunits/MWLink.js
@@ -30,6 +30,7 @@
if ( linkPairInfo.targetTitle ) {
// NOTE: This paths we are setting here are not relative paths.
this.node.attributes[ 'href' ] = linkPairInfo.targetTitle;
+   this.node.attributes[ 'title' ] = linkPairInfo.targetTitle;
adaptationInfo.targetTitle = yield 
apiRequestManager.titleInfoRequest(
linkPairInfo.targetTitle, this.targetLanguage
);
diff --git a/test/index.js b/test/index.js
index b6feadd..142b56e 100644
--- a/test/index.js
+++ b/test/index.js
@@ -13,6 +13,7 @@
'lib/pageloader',
'lib/routes',
'lib/segmentation',
+   'lib/translationunits',
'tests/**/*.js'
 ];
 
diff --git a/test/translationunits/MWLink.test.js 
b/test/translationunits/MWLink.test.js
new file mode 100644
index 000..eb17808
--- /dev/null
+++ b/test/translationunits/MWLink.test.js
@@ -0,0 +1,24 @@
+'use strict';
+
+var assert = require( '../utils/assert.js' ),
+   server = require( '../utils/server.js' ),
+   async = require( 'async' ),
+   Adapter = require( '../../lib/Adapter' ),
+   tests = require( './MWLink.test.json' );
+
+describe( 'Link Adaptation tests', function () {
+   async.forEach( tests, function ( test ) {
+   it( 'should not have any errors when: ' + test.desc, function 
() {
+   var translationunit, adapter;
+
+   adapter = new Adapter( test.from, test.to, 
server.config );
+   translationunit = adapter.getAdapter( test.source );
+   return translationunit.adapt( test.source ).then( 
function ( adaptedNode ) {
+   assert.deepEqual( adaptedNode.attributes.href, 
test.result.attributes.href );
+   assert.deepEqual( adaptedNode.attributes.rel, 
test.result.attributes.rel );
+   assert.deepEqual( adaptedNode.attributes.title, 
test.result.attributes.title );
+   assert.deepEqual( JSON.parse( 
adaptedNode.attributes[ 'data-cx' ] ), test.result.attributes[ 'data-cx' ] );
+   } );
+   } );
+   } );
+} );
diff --git a/test/translationunits/MWLink.test.json 
b/test/translationunits/MWLink.test.json
new file mode 100644
index 000..f39befe
--- /dev/null
+++ b/test/translationunits/MWLink.test.json
@@ -0,0 +1,287 @@
+[
+   {
+   "desc": "Basic test",
+   "from": "en",
+   "to": "es",
+   "source": {
+   "attributes": {
+   "rel": "mw:WikiLink",
+   "href": "Oxygen",
+   "title": "Oxygen"
+   }
+   },
+   "result": {
+   "attributes": {
+   "rel": "mw:WikiLink",
+   "href": "Oxígeno",
+   "title": "Oxígeno",
+   "data-cx": {
+   "adapted": true,
+   "targetTitle": {
+   "pageid": 3267,
+   "ns": 0,
+   "title": "Oxígeno",
+   "contentmodel": "wikitext",
+   "pagelanguage": "es",
+   "pagelanguagehtmlcode": "es",
+   "pagelanguagedir": "ltr",
+   "touched": 
"2017-08-22T17:53:12Z",
+   "lastrevid": 101258484,
+   "length": 104691,
+   "thumbnail": {
+   "source": 
"https://upload.wikimedia.org/wikipedia/commons/thumb/7/77/O%2C8.jpg/80px-O%2C8.jpg;,
+   "width":