jenkins-bot has submitted this change and it was merged.
Change subject: Group optional action test arguments in an options object
......................................................................
Group optional action test arguments in an options object
Also add an expected selection option for link tests.
Change-Id: I9b9275b55b367a1335bf4c4f8f52a68f6aeb9827
---
M tests/ui/actions/ve.ui.AnnotationAction.test.js
M tests/ui/actions/ve.ui.ContentAction.test.js
M tests/ui/actions/ve.ui.FormatAction.test.js
M tests/ui/actions/ve.ui.IndentationAction.test.js
M tests/ui/actions/ve.ui.LinkAction.test.js
M tests/ui/actions/ve.ui.ListAction.test.js
M tests/ui/actions/ve.ui.TableAction.test.js
M tests/ve.test.utils.js
8 files changed, 72 insertions(+), 25 deletions(-)
Approvals:
DLynch: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tests/ui/actions/ve.ui.AnnotationAction.test.js
b/tests/ui/actions/ve.ui.AnnotationAction.test.js
index cdb809c..804624c 100644
--- a/tests/ui/actions/ve.ui.AnnotationAction.test.js
+++ b/tests/ui/actions/ve.ui.AnnotationAction.test.js
@@ -106,8 +106,11 @@
QUnit.expect( ve.test.utils.countActionTests( cases ) );
for ( i = 0; i < cases.length; i++ ) {
ve.test.utils.runActionTest(
- 'annotation', assert, cases[ i ].html, false, cases[ i
].method, cases[ i ].args, cases[ i ].rangeOrSelection,
- cases[ i ].expectedData, cases[ i
].expectedOriginalData, cases[ i ].expectedRangeOrSelection, cases[ i ].undo,
cases[ i ].msg
+ 'annotation', assert, cases[ i ].html, false, cases[ i
].method, cases[ i ].args, cases[ i ].rangeOrSelection, cases[ i ].msg,
+ {
+ expectedData: cases[ i ].expectedData,
+ expectedRangeOrSelection: cases[ i
].expectedRangeOrSelection
+ }
);
}
} );
diff --git a/tests/ui/actions/ve.ui.ContentAction.test.js
b/tests/ui/actions/ve.ui.ContentAction.test.js
index d78a394..e4eeaf3 100644
--- a/tests/ui/actions/ve.ui.ContentAction.test.js
+++ b/tests/ui/actions/ve.ui.ContentAction.test.js
@@ -103,8 +103,12 @@
QUnit.expect( ve.test.utils.countActionTests( cases ) );
for ( i = 0; i < cases.length; i++ ) {
ve.test.utils.runActionTest(
- 'content', assert, cases[ i ].html, cases[ i
].createView, cases[ i ].method, cases[ i ].args, cases[ i ].rangeOrSelection,
- cases[ i ].expectedData, cases[ i
].expectedOriginalData, cases[ i ].expectedRangeOrSelection, cases[ i ].undo,
cases[ i ].msg
+ 'content', assert, cases[ i ].html, cases[ i
].createView, cases[ i ].method, cases[ i ].args, cases[ i ].rangeOrSelection,
cases[ i ].msg,
+ {
+ expectedData: cases[ i ].expectedData,
+ expectedRangeOrSelection: cases[ i
].expectedRangeOrSelection,
+ undo: cases[ i ].undo
+ }
);
}
} );
diff --git a/tests/ui/actions/ve.ui.FormatAction.test.js
b/tests/ui/actions/ve.ui.FormatAction.test.js
index ebd14af..3bbf532 100644
--- a/tests/ui/actions/ve.ui.FormatAction.test.js
+++ b/tests/ui/actions/ve.ui.FormatAction.test.js
@@ -102,8 +102,13 @@
QUnit.expect( ve.test.utils.countActionTests( cases ) );
for ( i = 0; i < cases.length; i++ ) {
ve.test.utils.runActionTest(
- 'format', assert, cases[ i ].html ||
ve.dm.example.isolationHtml, false, 'convert', [ cases[ i ].type, cases[ i
].attributes ], cases[ i ].rangeOrSelection,
- cases[ i ].expectedData, cases[ i
].expectedOriginalData, cases[ i ].expectedRangeOrSelection, cases[ i ].undo,
cases[ i ].msg
+ 'format', assert, cases[ i ].html ||
ve.dm.example.isolationHtml, false, 'convert',
+ [ cases[ i ].type, cases[ i ].attributes ], cases[ i
].rangeOrSelection, cases[ i ].msg,
+ {
+ expectedData: cases[ i ].expectedData,
+ expectedRangeOrSelection: cases[ i
].expectedRangeOrSelection,
+ undo: cases[ i ].undo
+ }
);
}
} );
diff --git a/tests/ui/actions/ve.ui.IndentationAction.test.js
b/tests/ui/actions/ve.ui.IndentationAction.test.js
index e76393f..a8279c3 100644
--- a/tests/ui/actions/ve.ui.IndentationAction.test.js
+++ b/tests/ui/actions/ve.ui.IndentationAction.test.js
@@ -61,8 +61,13 @@
QUnit.expect( ve.test.utils.countActionTests( cases ) );
for ( i = 0; i < cases.length; i++ ) {
ve.test.utils.runActionTest(
- 'indentation', assert, cases[ i ].html ||
ve.dm.example.isolationHtml, false, cases[ i ].method, [], cases[ i
].rangeOrSelection,
- cases[ i ].expectedData, cases[ i
].expectedOriginalData, cases[ i ].expectedRangeOrSelection, cases[ i ].undo,
cases[ i ].msg
+ 'indentation', assert, cases[ i ].html ||
ve.dm.example.isolationHtml, false, cases[ i ].method, [], cases[ i
].rangeOrSelection, cases[ i ].msg,
+ {
+ expectedData: cases[ i ].expectedData,
+ expectedOriginalData: cases[ i
].expectedOriginalData,
+ expectedRangeOrSelection: cases[ i
].expectedRangeOrSelection,
+ undo: cases[ i ].undo
+ }
);
}
} );
diff --git a/tests/ui/actions/ve.ui.LinkAction.test.js
b/tests/ui/actions/ve.ui.LinkAction.test.js
index cfb2db6..454d6e9 100644
--- a/tests/ui/actions/ve.ui.LinkAction.test.js
+++ b/tests/ui/actions/ve.ui.LinkAction.test.js
@@ -16,6 +16,7 @@
rangeOrSelection: new ve.Range( 1, 20 ),
method: 'autolinkUrl',
expectedRangeOrSelection: new ve.Range( 20 ),
+ expectedOriginalRangeOrSelection: new ve.Range(
20 ),
expectedData: function ( data, action ) {
var i,
a = action.getLinkAnnotation(
'http://example.com' );
@@ -23,6 +24,7 @@
data[ i ] = [ data[ i ], [
a.element ] ];
}
},
+ undo: true,
msg: 'Autolink after space'
},
{
@@ -30,6 +32,7 @@
rangeOrSelection: new ve.Range( 1, 21 ),
method: 'autolinkUrl',
expectedRangeOrSelection: new ve.Range( 21 ),
+ expectedOriginalRangeOrSelection: new ve.Range(
21 ),
expectedData: function ( data, action ) {
var i,
a = action.getLinkAnnotation(
'http://example.com' );
@@ -37,6 +40,7 @@
data[ i ] = [ data[ i ], [
a.element ] ];
}
},
+ undo: true,
msg: 'Autolink after newline'
},
{
@@ -44,6 +48,7 @@
rangeOrSelection: new ve.Range( 1, 20 ),
method: 'autolinkUrl',
expectedRangeOrSelection: new ve.Range( 20 ),
+ expectedOriginalRangeOrSelection: new ve.Range(
20 ),
expectedData: function ( data, action ) {
var i,
a = action.getLinkAnnotation(
'Http://Example.COm' );
@@ -51,6 +56,7 @@
data[ i ] = [ data[ i ], [
a.element ] ];
}
},
+ undo: true,
msg: 'Autolink with mixed case'
},
{
@@ -58,6 +64,7 @@
rangeOrSelection: new ve.Range( 1, 22 ),
method: 'autolinkUrl',
expectedRangeOrSelection: new ve.Range( 22 ),
+ expectedOriginalRangeOrSelection: new ve.Range(
22 ),
expectedData: function ( data, action ) {
var i,
a = action.getLinkAnnotation(
'http://example.com' );
@@ -65,6 +72,7 @@
data[ i ] = [ data[ i ], [
a.element ] ];
}
},
+ undo: true,
msg: 'Strip trailing punctuation'
},
{
@@ -72,6 +80,7 @@
rangeOrSelection: new ve.Range( 2, 22 ),
method: 'autolinkUrl',
expectedRangeOrSelection: new ve.Range( 22 ),
+ expectedOriginalRangeOrSelection: new ve.Range(
22 ),
expectedData: function ( data, action ) {
var i,
a = action.getLinkAnnotation(
'http://example.com' );
@@ -79,6 +88,7 @@
data[ i ] = [ data[ i ], [
a.element ] ];
}
},
+ undo: true,
msg: 'Strip trailing quotes'
},
{
@@ -96,8 +106,13 @@
QUnit.expect( ve.test.utils.countActionTests( cases ) );
for ( i = 0; i < cases.length; i++ ) {
ve.test.utils.runActionTest(
- 'link', assert, cases[ i ].html, false, cases[ i
].method, [], cases[ i ].rangeOrSelection,
- cases[ i ].expectedData, cases[ i
].expectedOriginalData, cases[ i ].expectedRangeOrSelection, cases[ i ].undo,
cases[ i ].msg
+ 'link', assert, cases[ i ].html, false, cases[ i
].method, [], cases[ i ].rangeOrSelection, cases[ i ].msg,
+ {
+ expectedData: cases[ i ].expectedData,
+ expectedRangeOrSelection: cases[ i
].expectedRangeOrSelection,
+ expectedOriginalRangeOrSelection: cases[ i
].expectedOriginalRangeOrSelection,
+ undo: cases[ i ].undo
+ }
);
}
} );
diff --git a/tests/ui/actions/ve.ui.ListAction.test.js
b/tests/ui/actions/ve.ui.ListAction.test.js
index 1639418..63851cd 100644
--- a/tests/ui/actions/ve.ui.ListAction.test.js
+++ b/tests/ui/actions/ve.ui.ListAction.test.js
@@ -54,8 +54,13 @@
QUnit.expect( ve.test.utils.countActionTests( cases ) );
for ( i = 0; i < cases.length; i++ ) {
ve.test.utils.runActionTest(
- 'list', assert, cases[ i ].html, false, cases[ i
].method, [ cases[ i ].style ], cases[ i ].rangeOrSelection,
- cases[ i ].expectedData, cases[ i
].expectedOriginalData, cases[ i ].expectedRangeOrSelection, cases[ i ].undo,
cases[ i ].msg
+ 'list', assert, cases[ i ].html, false, cases[ i
].method, [ cases[ i ].style ], cases[ i ].rangeOrSelection, cases[ i ].msg,
+ {
+ expectedData: cases[ i ].expectedData,
+ expectedOriginalData: cases[ i
].expectedOriginalData,
+ expectedRangeOrSelection: cases[ i
].expectedRangeOrSelection,
+ undo: cases[ i ].undo
+ }
);
}
} );
diff --git a/tests/ui/actions/ve.ui.TableAction.test.js
b/tests/ui/actions/ve.ui.TableAction.test.js
index da828a0..e1f0c57 100644
--- a/tests/ui/actions/ve.ui.TableAction.test.js
+++ b/tests/ui/actions/ve.ui.TableAction.test.js
@@ -426,8 +426,11 @@
QUnit.expect( ve.test.utils.countActionTests( cases ) );
for ( i = 0; i < cases.length; i++ ) {
ve.test.utils.runActionTest(
- 'table', assert, cases[ i ].html, false, cases[ i
].method, cases[ i ].args, cases[ i ].rangeOrSelection,
- cases[ i ].expectedData, cases[ i
].expectedOriginalData, cases[ i ].expectedRangeOrSelection, cases[ i ].undo,
cases[ i ].msg
+ 'table', assert, cases[ i ].html, false, cases[ i
].method, cases[ i ].args, cases[ i ].rangeOrSelection, cases[ i ].msg,
+ {
+ expectedData: cases[ i ].expectedData,
+ expectedRangeOrSelection: cases[ i
].expectedRangeOrSelection
+ }
);
}
} );
diff --git a/tests/ve.test.utils.js b/tests/ve.test.utils.js
index ebe6c87..cb9dcba 100644
--- a/tests/ve.test.utils.js
+++ b/tests/ve.test.utils.js
@@ -97,26 +97,27 @@
return expected;
};
- ve.test.utils.runActionTest = function ( actionName, assert, html,
createView, method, args, rangeOrSelection, expectedData, expectedOriginalData,
expectedRangeOrSelection, undo, msg ) {
- var actualData,
+ ve.test.utils.runActionTest = function ( actionName, assert, html,
createView, method, args, rangeOrSelection, msg, options ) {
+ var actualData, originalData, expectedOriginalRangeOrSelection,
surface = createView ?
ve.test.utils.createViewOnlySurfaceFromHtml(
html || ve.dm.example.html ) :
ve.test.utils.createModelOnlySurfaceFromHtml(
html || ve.dm.example.html ),
action = ve.ui.actionFactory.create( actionName,
surface ),
data = ve.copy(
surface.getModel().getDocument().getFullData() ),
- originalData = ve.copy( data ),
documentModel = surface.getModel().getDocument(),
selection =
ve.test.utils.selectionFromRangeOrSelection( documentModel, rangeOrSelection ),
- expectedSelection = expectedRangeOrSelection &&
ve.test.utils.selectionFromRangeOrSelection( documentModel,
expectedRangeOrSelection );
+ expectedSelection = options.expectedRangeOrSelection &&
ve.test.utils.selectionFromRangeOrSelection( documentModel,
options.expectedRangeOrSelection );
+
+ if ( options.undo ) {
+ originalData = ve.copy( data );
+ }
ve.dm.example.postprocessAnnotations( data,
surface.getModel().getDocument().getStore() );
- if ( expectedData ) {
- expectedData( data, action );
+ if ( options.expectedData ) {
+ options.expectedData( data, action );
}
- if ( expectedOriginalData ) {
- expectedOriginalData( originalData, action );
- }
+
surface.getModel().setSelection( selection );
action[ method ].apply( action, args || [] );
@@ -127,12 +128,18 @@
assert.equalHash( surface.getModel().getSelection(),
expectedSelection, msg + ': selections match' );
}
- if ( undo ) {
+ if ( options.undo ) {
+ if ( options.expectedOriginalData ) {
+ options.expectedOriginalData( originalData,
action );
+ }
+
surface.getModel().undo();
assert.equalLinearData(
surface.getModel().getDocument().getFullData(), originalData, msg + ' (undo):
data models match' );
if ( expectedSelection ) {
- assert.equalHash(
surface.getModel().getSelection(), selection, msg + ' (undo): selections match'
);
+ expectedOriginalRangeOrSelection =
options.expectedOriginalRangeOrSelection &&
+
ve.test.utils.selectionFromRangeOrSelection( documentModel,
options.expectedOriginalRangeOrSelection );
+ assert.equalHash(
surface.getModel().getSelection(), expectedOriginalRangeOrSelection ||
selection, msg + ' (undo): selections match' );
}
}
};
--
To view, visit https://gerrit.wikimedia.org/r/288174
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I9b9275b55b367a1335bf4c4f8f52a68f6aeb9827
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: DLynch <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits