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

Change subject: Populate "Ask out" (modeling 2) Lexeme for demo system
......................................................................


Populate "Ask out" (modeling 2) Lexeme for demo system

Bug: T168373
Change-Id: I593e7a9a813735492cb14974045911ee7c402a19
---
M resources/serialization/LexemeDeserializer.js
M src/Content/LexemeContent.php
A src/DemoData/AskOut2Populator.php
M tests/browser/features/step_definitions/senses_steps.rb
M tests/browser/features/support/env.rb
M tests/browser/features/support/pages/lexeme_page.rb
M tests/qunit/serialization/LexemeDeserializer.tests.js
7 files changed, 81 insertions(+), 7 deletions(-)

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



diff --git a/resources/serialization/LexemeDeserializer.js 
b/resources/serialization/LexemeDeserializer.js
index 7c38169..5feb6cc 100644
--- a/resources/serialization/LexemeDeserializer.js
+++ b/resources/serialization/LexemeDeserializer.js
@@ -29,12 +29,12 @@
                        var statementGroupSetDeserializer = new 
SERIALIZER.StatementGroupSetDeserializer(),
                                termMapDeserializer = new 
SERIALIZER.TermMapDeserializer();
 
-                       var forms = serialization.forms;
+                       var forms = serialization.forms || [];
                        var deserializedForms = forms.map( function ( form ) {
                                return this.deserializeForm( form );
                        }.bind( this ) );
 
-                       var senses = serialization.senses;
+                       var senses = serialization.senses || [];
                        var deserializedSenses = senses.map( function ( sense ) 
{
                                return this.deserializeSense( sense );
                        }.bind( this ) );
diff --git a/src/Content/LexemeContent.php b/src/Content/LexemeContent.php
index c6c3af3..774c125 100644
--- a/src/Content/LexemeContent.php
+++ b/src/Content/LexemeContent.php
@@ -62,6 +62,8 @@
                        ( new DemoData\LeiterLexemePopulator() )->populate( 
$lexeme );
                } elseif ( $id === DemoData\Id::L_ASK_1 ) {
                        ( new DemoData\AskOut1Populator() )->populate( $lexeme 
);
+               } elseif ( $id === DemoData\Id::L_ASK_2 ) {
+                       ( new DemoData\AskOut2Populator() )->populate( $lexeme 
);
                } else {
                        ( new DemoData\DefaultPopulator() )->populate( $lexeme 
);
                }
diff --git a/src/DemoData/AskOut2Populator.php 
b/src/DemoData/AskOut2Populator.php
new file mode 100644
index 0000000..3534377
--- /dev/null
+++ b/src/DemoData/AskOut2Populator.php
@@ -0,0 +1,31 @@
+<?php
+
+namespace Wikibase\Lexeme\DemoData;
+
+use Wikibase\Lexeme\DataModel\Lexeme;
+use Wikibase\Lexeme\Tests\DataModel\NewSense;
+use Wikibase\Repo\Tests\NewStatement;
+
+class AskOut2Populator {
+
+       public function populate( Lexeme $lexeme ) {
+               $defaultSense = $this->buildDefaultSense();
+
+               $lexeme->setSenses( [ $defaultSense ] );
+       }
+
+       /**
+        * @return \Wikibase\Lexeme\DataModel\Sense
+        */
+       private function buildDefaultSense() {
+               return NewSense::havingId( 'S5' )
+                       ->withGloss( 'en', 'To request a romantic date' )
+                       ->withStatement(
+                               NewStatement::forProperty( 
Id::P_GRAMMATICAL_FRAME )
+                                       ->withValue( 'to <ask> $somebody out' )
+                                       ->withSomeGuid()
+                       )
+                       ->build();
+       }
+
+}
diff --git a/tests/browser/features/step_definitions/senses_steps.rb 
b/tests/browser/features/step_definitions/senses_steps.rb
index 6fe8e29..055035f 100644
--- a/tests/browser/features/step_definitions/senses_steps.rb
+++ b/tests/browser/features/step_definitions/senses_steps.rb
@@ -34,6 +34,7 @@
 
 Given(/^there is a Sense to test$/) do
   # TODO: All Lexemes have dummy senses at the moment; Needs to be changed 
once they're storable
+  expect(on(LexemePage).senses.count).to be > 0
 end
 
 When(/^I click the first Sense's edit button$/) do
diff --git a/tests/browser/features/support/env.rb 
b/tests/browser/features/support/env.rb
index 625c9fb..497f24c 100644
--- a/tests/browser/features/support/env.rb
+++ b/tests/browser/features/support/env.rb
@@ -27,9 +27,13 @@
 
 class DriverJSError < StandardError; end
 
-# Fail on JS errors in browser
-AfterStep do |scenario, step|
-  errors = @browser.driver.manage.logs.get(:browser)
+# Fail on JS errors in browser or print browser log if scenario fails
+# Note: Both use-cases be in the same function, as soon as
+#       call `@browser.driver.manage.logs.get(:browser)` clears the log
+After do |scenario|
+  log_entries = @browser.driver.manage.logs.get(:browser)
+
+  errors = log_entries
                .select do |e|
                     e.level == "SEVERE" && e.message.present?
                   end
@@ -39,4 +43,10 @@
   if errors.present?
     raise DriverJSError, errors.join("\n\n")
   end
-end
\ No newline at end of file
+
+  if scenario.failed?
+      puts 'Current url: ' + @browser.driver.current_url
+      puts 'Browser console log:'
+      puts log_entries.map(&:message).join("\n")
+  end
+end
diff --git a/tests/browser/features/support/pages/lexeme_page.rb 
b/tests/browser/features/support/pages/lexeme_page.rb
index b2452ef..e254a00 100644
--- a/tests/browser/features/support/pages/lexeme_page.rb
+++ b/tests/browser/features/support/pages/lexeme_page.rb
@@ -86,7 +86,7 @@
 class Sense
   include PageObject
 
-  a(:edit, css: '.wikibase-toolbar-button-edit > a')
+  a(:edit, css: '.wikibase-lexeme-sense > .wikibase-edittoolbar-container 
.wikibase-toolbar-button-edit > a')
   a(:save, css: '.wikibase-toolbar-button-save > a')
   button(:add_gloss, css: '.wikibase-lexeme-sense-glosses-add')
 
diff --git a/tests/qunit/serialization/LexemeDeserializer.tests.js 
b/tests/qunit/serialization/LexemeDeserializer.tests.js
index fb2278c..c6b8fb2 100644
--- a/tests/qunit/serialization/LexemeDeserializer.tests.js
+++ b/tests/qunit/serialization/LexemeDeserializer.tests.js
@@ -106,6 +106,21 @@
                );
        } );
 
+       QUnit.test(
+               'deserialize() deserializes forms when `forms` key is not 
present',
+               function ( assert ) {
+                       var ds = new 
wb.lexeme.serialization.LexemeDeserializer();
+
+                       var result = ds.deserialize( {
+                               type: 'lexeme',
+                               id: 'L1',
+                               senses: []
+                       } );
+
+                       assert.ok( result.forms, 'Deserialized data model 
should contain forms' );
+               }
+       );
+
        QUnit.test( 'deserialize() deserializes senses', function ( assert ) {
                var ds = new wb.lexeme.serialization.LexemeDeserializer();
 
@@ -141,4 +156,19 @@
                );
        } );
 
+       QUnit.test(
+               'deserialize() deserializes senses when `senses` key is not 
present',
+               function ( assert ) {
+                       var ds = new 
wb.lexeme.serialization.LexemeDeserializer();
+
+                       var result = ds.deserialize( {
+                               type: 'lexeme',
+                               id: 'L1',
+                               forms: []
+                       } );
+
+                       assert.ok( result.senses, 'Deserialized data model 
should contain senses' );
+               }
+       );
+
 }( jQuery, wikibase, QUnit ) );

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I593e7a9a813735492cb14974045911ee7c402a19
Gerrit-PatchSet: 10
Gerrit-Project: mediawiki/extensions/WikibaseLexeme
Gerrit-Branch: master
Gerrit-Owner: Aleksey Bekh-Ivanov (WMDE) <[email protected]>
Gerrit-Reviewer: Aleksey Bekh-Ivanov (WMDE) <[email protected]>
Gerrit-Reviewer: Jonas Kress (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