[MediaWiki-commits] [Gerrit] VisualEditor/VisualEditor[master]: Test selections without relying on a ve.dm.Surface select ev...

2016-09-28 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: Test selections without relying on a ve.dm.Surface select event 
listener
..


Test selections without relying on a ve.dm.Surface select event listener

Bug: T145938
Change-Id: I3cc3d3d0bf5eaef135160d762607cd799d48d910
---
M src/ui/ve.ui.DebugBar.js
M tests/ce/ve.ce.Surface.test.js
2 files changed, 9 insertions(+), 14 deletions(-)

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



diff --git a/src/ui/ve.ui.DebugBar.js b/src/ui/ve.ui.DebugBar.js
index 74c9187..4bbc609 100644
--- a/src/ui/ve.ui.DebugBar.js
+++ b/src/ui/ve.ui.DebugBar.js
@@ -112,7 +112,9 @@
  *
  * @param {ve.dm.Selection} selection
  */
-ve.ui.DebugBar.prototype.onSurfaceSelect = function ( selection ) {
+ve.ui.DebugBar.prototype.onSurfaceSelect = function () {
+   // Do not trust the emitted selection: nested emits can invalidate it. 
See T145938.
+   var selection = this.surface.model.getSelection();
this.selectionLabel.setLabel( selection.getDescription() );
this.logRangeButton.setDisabled( !(
( selection instanceof ve.dm.LinearSelection && 
!selection.isCollapsed() ) ||
diff --git a/tests/ce/ve.ce.Surface.test.js b/tests/ce/ve.ce.Surface.test.js
index 5a2d5c6..7adbd27 100644
--- a/tests/ce/ve.ce.Surface.test.js
+++ b/tests/ce/ve.ce.Surface.test.js
@@ -9,23 +9,16 @@
 /* Tests */
 
 ve.test.utils.runSurfaceHandleSpecialKeyTest = function ( assert, htmlOrDoc, 
rangeOrSelection, keys, expectedData, expectedRangeOrSelection, msg, 
forceSelection, fullEvents ) {
-   var i, e, selection, expectedSelection, key,
+   var i, e, expectedSelection, key,
view = typeof htmlOrDoc === 'string' ?
ve.test.utils.createSurfaceViewFromHtml( htmlOrDoc ) :
( htmlOrDoc instanceof ve.ce.Surface ? htmlOrDoc : 
ve.test.utils.createSurfaceViewFromDocument( htmlOrDoc || 
ve.dm.example.createExampleDocument() ) ),
model = view.getModel(),
data = ve.copy( model.getDocument().getFullData() );
 
-   // TODO: model.getSelection() should be consistent after it has been
-   // changed but appears to behave differently depending on the browser.
-   // The selection from the select event is still consistent.
-   selection = ve.test.utils.selectionFromRangeOrSelection( 
model.getDocument(), rangeOrSelection );
-
-   model.on( 'select', function ( s ) {
-   selection = s;
-   } );
-
-   model.setSelection( selection );
+   model.setSelection(
+   ve.test.utils.selectionFromRangeOrSelection( 
model.getDocument(), rangeOrSelection )
+   );
for ( i = 0; i < keys.length; i++ ) {
key = keys[ i ].split( '+' );
e = {
@@ -54,7 +47,7 @@
view.showSelectionState( 
view.getSelectionState( forceSelection ) );
}
ve.ce.keyDownHandlerFactory.executeHandlersForKey(
-   e.keyCode, selection.getName(), view, e
+   e.keyCode, model.getSelection().getName(), 
view, e
);
}
}
@@ -66,7 +59,7 @@
);
 
assert.equalLinearData( model.getDocument().getFullData(), data, msg + 
': data' );
-   assert.equalHash( selection, expectedSelection, msg + ': selection' );
+   assert.equalHash( model.getSelection(), expectedSelection, msg + ': 
selection' );
view.destroy();
 };
 

-- 
To view, visit https://gerrit.wikimedia.org/r/311238
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I3cc3d3d0bf5eaef135160d762607cd799d48d910
Gerrit-PatchSet: 4
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Divec 
Gerrit-Reviewer: DLynch 
Gerrit-Reviewer: Divec 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] VisualEditor/VisualEditor[master]: Test selections without relying on a ve.dm.Surface select ev...

2016-09-17 Thread Divec (Code Review)
Divec has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/311238

Change subject: Test selections without relying on a ve.dm.Surface select event 
listener
..

Test selections without relying on a ve.dm.Surface select event listener

Bug: T145938
Change-Id: I3cc3d3d0bf5eaef135160d762607cd799d48d910
---
M src/ui/ve.ui.DebugBar.js
M tests/ce/ve.ce.Surface.test.js
2 files changed, 8 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/38/311238/1

diff --git a/src/ui/ve.ui.DebugBar.js b/src/ui/ve.ui.DebugBar.js
index 74c9187..3ba417f 100644
--- a/src/ui/ve.ui.DebugBar.js
+++ b/src/ui/ve.ui.DebugBar.js
@@ -113,6 +113,8 @@
  * @param {ve.dm.Selection} selection
  */
 ve.ui.DebugBar.prototype.onSurfaceSelect = function ( selection ) {
+   // Ignore the function argument, because nested emits can cause it to 
be outdated
+   selection = this.surface.model.getSelection();
this.selectionLabel.setLabel( selection.getDescription() );
this.logRangeButton.setDisabled( !(
( selection instanceof ve.dm.LinearSelection && 
!selection.isCollapsed() ) ||
diff --git a/tests/ce/ve.ce.Surface.test.js b/tests/ce/ve.ce.Surface.test.js
index 5a2d5c6..7adbd27 100644
--- a/tests/ce/ve.ce.Surface.test.js
+++ b/tests/ce/ve.ce.Surface.test.js
@@ -9,23 +9,16 @@
 /* Tests */
 
 ve.test.utils.runSurfaceHandleSpecialKeyTest = function ( assert, htmlOrDoc, 
rangeOrSelection, keys, expectedData, expectedRangeOrSelection, msg, 
forceSelection, fullEvents ) {
-   var i, e, selection, expectedSelection, key,
+   var i, e, expectedSelection, key,
view = typeof htmlOrDoc === 'string' ?
ve.test.utils.createSurfaceViewFromHtml( htmlOrDoc ) :
( htmlOrDoc instanceof ve.ce.Surface ? htmlOrDoc : 
ve.test.utils.createSurfaceViewFromDocument( htmlOrDoc || 
ve.dm.example.createExampleDocument() ) ),
model = view.getModel(),
data = ve.copy( model.getDocument().getFullData() );
 
-   // TODO: model.getSelection() should be consistent after it has been
-   // changed but appears to behave differently depending on the browser.
-   // The selection from the select event is still consistent.
-   selection = ve.test.utils.selectionFromRangeOrSelection( 
model.getDocument(), rangeOrSelection );
-
-   model.on( 'select', function ( s ) {
-   selection = s;
-   } );
-
-   model.setSelection( selection );
+   model.setSelection(
+   ve.test.utils.selectionFromRangeOrSelection( 
model.getDocument(), rangeOrSelection )
+   );
for ( i = 0; i < keys.length; i++ ) {
key = keys[ i ].split( '+' );
e = {
@@ -54,7 +47,7 @@
view.showSelectionState( 
view.getSelectionState( forceSelection ) );
}
ve.ce.keyDownHandlerFactory.executeHandlersForKey(
-   e.keyCode, selection.getName(), view, e
+   e.keyCode, model.getSelection().getName(), 
view, e
);
}
}
@@ -66,7 +59,7 @@
);
 
assert.equalLinearData( model.getDocument().getFullData(), data, msg + 
': data' );
-   assert.equalHash( selection, expectedSelection, msg + ': selection' );
+   assert.equalHash( model.getSelection(), expectedSelection, msg + ': 
selection' );
view.destroy();
 };
 

-- 
To view, visit https://gerrit.wikimedia.org/r/311238
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3cc3d3d0bf5eaef135160d762607cd799d48d910
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Divec 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits