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