jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/350233 )

Change subject: Add qunit test for jquery.wikibase.lexemeformview
......................................................................


Add qunit test for jquery.wikibase.lexemeformview

Change-Id: I23afc98861e109830891ef7fb6e315d00ecb26d9
---
M src/WikibaseLexeme.hooks.php
A tests/qunit/jquery.wikibase.lexemeformview.tests.js
2 files changed, 99 insertions(+), 0 deletions(-)

Approvals:
  jenkins-bot: Verified
  Thiemo Mättig (WMDE): Looks good to me, approved



diff --git a/src/WikibaseLexeme.hooks.php b/src/WikibaseLexeme.hooks.php
index 4e85b92..a96330a 100644
--- a/src/WikibaseLexeme.hooks.php
+++ b/src/WikibaseLexeme.hooks.php
@@ -82,6 +82,7 @@
                                'tests/qunit/services/ItemLookup.tests.js',
                                
'tests/qunit/services/LanguageFromItemExtractor.tests.js',
                                
'tests/qunit/special/formHelpers/LexemeLanguageFieldObserver.tests.js',
+                               
'tests/qunit/jquery.wikibase.lexemeformview.tests.js',
                        ],
                        'dependencies' => [
                                
'wikibase.lexeme.serialization.LexemeDeserializer',
@@ -89,6 +90,8 @@
                                'wikibase.lexeme.services.ItemLookup',
                                
'wikibase.lexeme.services.LanguageFromItemExtractor',
                                
'wikibase.lexeme.special.formHelpers.LexemeLanguageFieldObserver',
+                               'wikibase.lexeme.datamodel.LexemeForm',
+                               'jquery.wikibase.lexemeformview',
                                'oojs-ui'
                        ],
                        'localBasePath' => dirname( __DIR__ ),
diff --git a/tests/qunit/jquery.wikibase.lexemeformview.tests.js 
b/tests/qunit/jquery.wikibase.lexemeformview.tests.js
new file mode 100644
index 0000000..a7191d5
--- /dev/null
+++ b/tests/qunit/jquery.wikibase.lexemeformview.tests.js
@@ -0,0 +1,96 @@
+/**
+ * @license GPL-2.0+
+ */
+( function ( $, wb, QUnit ) {
+       'use strict';
+
+       var TEST_LEXMEFORMVIEW_CLASS = 'test_lexemeformview';
+
+       QUnit.module( 'jquery.wikibase.lexemeformview', QUnit.newMwEnvironment( 
{
+               teardown: function () {
+                       $( '.' + TEST_LEXMEFORMVIEW_CLASS ).remove();
+               }
+       } ) );
+
+       var newLexemeFormView = function ( options ) {
+               var $node = $( '<div/>' ).appendTo( 'body' );
+
+               $node.addClass( TEST_LEXMEFORMVIEW_CLASS );
+
+               return $node.lexemeformview( options || {} ).data( 
'lexemeformview' );
+       };
+
+       var newForm = function ( id, representation ) {
+               return new wb.lexeme.datamodel.LexemeForm( id, representation );
+       };
+
+       QUnit.test( 'can be created', function ( assert ) {
+               assert.ok( newLexemeFormView() instanceof 
$.wikibase.lexemeformview );
+       } );
+
+       QUnit.test( 'value can be injected as option.value', function ( assert 
) {
+               var form = newForm( 'F123', 'foo' ),
+                       view = newLexemeFormView( {
+                               value: form
+                       } );
+
+               assert.equal( view.value(), form );
+       } );
+
+       QUnit.test( 'value() sets internal value', function ( assert ) {
+               var form1 = newForm( 'F123', 'foo' ),
+                       form2 = newForm( 'F234', 'bar' ),
+                       view = newLexemeFormView( {
+                               value: form1
+                       } );
+
+               view.value( form2 );
+               assert.equal( view.value(), form2 );
+       } );
+
+       QUnit.test( 'value() creates value from input if it is in edit mode', 
function ( assert ) {
+               var view = newLexemeFormView(),
+                       textInput = 'foobar';
+
+               view.startEditing();
+               view.element.find( view.options.inputNodeName ).val( textInput 
);
+
+               assert.equal( view.value().getRepresentation(), textInput );
+       } );
+
+       QUnit.test( 'should be in edit mode by default when initialized without 
a value', function ( assert ) {
+               assert.ok( newLexemeFormView().isInEditMode() );
+       } );
+
+       QUnit.test( 'should not be in edit mode by default when initialized 
with a value', function ( assert ) {
+               assert.notOk( newLexemeFormView( { value: newForm( 'F123', 
'foo' ) } ).isInEditMode() );
+       } );
+
+       QUnit.test( 'draws value in input node after startEditing()', function 
( assert ) {
+               var form = newForm( 'F123', 'foobar' ),
+                       view = newLexemeFormView( {
+                               value: form
+                       } );
+
+               view.startEditing();
+               assert.equal(
+                       view.element.find( view.options.inputNodeName ).val(),
+                       form.getRepresentation()
+               );
+       } );
+
+       QUnit.test( 'draws value in text node after stopEditing()', function ( 
assert ) {
+               var form = newForm( 'F123', 'foobar' ),
+                       view = newLexemeFormView( {
+                               value: form
+                       } );
+
+               view.startEditing();
+               view.stopEditing();
+               assert.equal(
+                       view.element.find( '.wikibase-lexeme-form-text' 
).text(),
+                       form.getRepresentation()
+               );
+       } );
+
+}( jQuery, wikibase, QUnit ) );

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I23afc98861e109830891ef7fb6e315d00ecb26d9
Gerrit-PatchSet: 9
Gerrit-Project: mediawiki/extensions/WikibaseLexeme
Gerrit-Branch: master
Gerrit-Owner: Jakob <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: WMDE-leszek <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to