Karima Rafes has submitted this change and it was merged.

Change subject: Update for MediaWiki 1.21 and add basic test
......................................................................


Update for MediaWiki 1.21 and add basic test

Change-Id: I0c05be587e9c458118eba9779e6573514a44e547
(cherry picked from commit ebb415d34f9dab8420465e125bc9b3cff5d10a54)
---
M LinkedWiki.php
M specialpages/SpecialSparqlQuery.php
A test/sparqlbasic.feature
A test/step_definitions/sparql_steps.rb
4 files changed, 138 insertions(+), 10 deletions(-)

Approvals:
  Karima Rafes: Verified; Looks good to me, approved



diff --git a/LinkedWiki.php b/LinkedWiki.php
index c6f955a..b2725d6 100644
--- a/LinkedWiki.php
+++ b/LinkedWiki.php
@@ -440,8 +440,8 @@
 }
 
 function  efSparqlParserFunction_footer($duration){
-       $today = date(wfMsg('date'));
-       return $today ." -- [{{fullurl:{{FULLPAGENAME}}|action=purge}} 
".wfMsg('refresh')."] -- ".wfMsg('durate')." :". round($duration, 3) ."s";
+       $today = date(wfMessage( 'date' )->text());
+       return $today ." -- [{{fullurl:{{FULLPAGENAME}}|action=purge}} 
".wfMessage( 'refresh' )->text()."] -- ".wfMessage( 'durate' )->text()." :". 
round($duration, 3) ."s";
 }
 
 function  efSparqlParserFunction_uri2Link($uri,$nowiki = false){
diff --git a/specialpages/SpecialSparqlQuery.php 
b/specialpages/SpecialSparqlQuery.php
index 108b52b..d9e4c1d 100644
--- a/specialpages/SpecialSparqlQuery.php
+++ b/specialpages/SpecialSparqlQuery.php
@@ -28,7 +28,8 @@
 
        public function __construct() {
                parent::__construct( 'specialsparqlquery' );
-               wfLoadExtensionMessages('specialsparqlquery');
+        /** @noinspection PhpUndefinedFunctionInspection */
+        //wfLoadExtensionMessages('specialsparqlquery');
        }
 
        public function execute($par = null) {
@@ -49,22 +50,22 @@
                if ( $query != "" && $output == "save" && $titleRequest != ""  
) {
 
                        if($this->pageExists($titleRequest)){
-                               
$wgOut->addHTML("<h2>".wfMsg('specialsparqlquery_error_title_exists_yet')."</h2>
 \n");
+                               
$wgOut->addHTML("<h2>".wfMessage('specialsparqlquery_error_title_exists_yet')->text()."</h2>
 \n");
                                $wgOut->addHTML();
                        }else{
                                $this->savePage($titleRequest, 
$this->template($query,$description));
-                               
$wgOut->addWikiText(wfMsg('specialsparqlquery_your_query_saved_here')."[[$titleRequest]]");
+                               
$wgOut->addWikiText(wfMessage('specialsparqlquery_your_query_saved_here')->text()."[[$titleRequest]]");
                        }
                }
                        
                if ( $query == "" || $output == "save" || $output == "wiki" ) {
-                       
$wgOut->addWikiText(wfMsg('specialsparqlquery_mainpage'));
+                       
$wgOut->addWikiText(wfMessage('specialsparqlquery_mainpage')->text());
                        $wgOut->addHTML("<pre>".htmlentities($this->prefix(), 
ENT_QUOTES, 'UTF-8')."</pre>");
                        $wgOut->addHTML("<form method='post' 
name='formQuery'>");
                        $wgOut->addHTML("<input type='hidden' name='output' 
value='wiki'>");
                        $wgOut->addHTML("<input type='hidden' name='prefix' 
value='".htmlentities($this->prefix(), ENT_QUOTES, 'UTF-8')." '>");
                        $wgOut->addHTML("<input type='hidden' name='query' >");
-                       
$wgOut->addHTML(wfMsg('specialsparqlquery_endpointsparql')." : <input 
type='text' name='endpoint' size='50' value='".$endpoint." '>");
+                       
$wgOut->addHTML(wfMessage('specialsparqlquery_endpointsparql')->text()." : 
<input type='text' name='endpoint' size='50' value='".$endpoint." '>");
                        $wgOut->addHTML("<textarea name='queryWithoutPrefix' 
cols='25' rows='15'>");
                        $strQuery = $queryWithoutPrefix != "" ? 
$queryWithoutPrefix : $this->exampleSparql(0) ;
                        $wgOut->addHTML($strQuery);
@@ -89,7 +90,7 @@
 }
 //-->
 </SCRIPT>");
-                       $wgOut->addHTML("<input type='button' 
value='".wfMsg('specialsparqlquery_sendquery')."'  
onClick='validAndSendQuery();' />");
+                       $wgOut->addHTML("<input type='button' 
value='".wfMessage('specialsparqlquery_sendquery')->text()."'  
onClick='validAndSendQuery();' />");
                        $wgOut->addHTML("<input type='button' value='(R&D) 
Validation (js)'  onClick='validWithJS();' />");
                        $wgOut->addHTML("   Xml : <input type='checkbox'  
name='toXML' />");
                        $wgOut->addHTML(" </form>");
@@ -123,8 +124,8 @@
                                        $arr = efSparqlParserFunction_simple( 
$query, $endpoint,  '',  '',   null );
                                        $wgOut->addWikiText($arr[0]);
 
-                                       
$wgOut->addWikiText("==".wfMsg('specialsparqlquery_usethisquery')."==");
-                                       
$wgOut->addWikiText(wfMsg('specialsparqlquery_usethisquery_tutorial'));
+                                       
$wgOut->addWikiText("==".wfMessage('specialsparqlquery_usethisquery')->text()."==");
+                                       
$wgOut->addWikiText(wfMessage('specialsparqlquery_usethisquery_tutorial')->text());
                                        
$wgOut->addHTML("<pre>{{#sparql:".htmlentities($query, ENT_QUOTES, 
'UTF-8')."\n|endpoint=".htmlentities($endpoint, ENT_QUOTES, 
'UTF-8')."}}</pre>");
                                }
                                
diff --git a/test/sparqlbasic.feature b/test/sparqlbasic.feature
new file mode 100644
index 0000000..76b6bdf
--- /dev/null
+++ b/test/sparqlbasic.feature
@@ -0,0 +1,92 @@
+@login
+Feature: client_sparql
+
+  Background:
+    Given I am logged in
+     
+#Check if the process work    
+  Scenario:Go to page that does not exist
+    Given I am at page that does not exist
+    Then link Create should be there
+
+#Check if I can write in the wiki
+ Scenario: Start a new page using the URL
+    Given I am at page that does not exist
+    When I click link Create
+      And I enter article text
+      And I click Save page button
+    Then newly created page should open
+      And page title should be there
+      And page text should be there
+      
+Scenario: Create a table
+    Given I am at page that does not exist
+    When I click link Create
+      And I enter the wikitext:
+        """
+{| class="wikitable sortable" 
+|- 
+!x!!y!!z
+|- 
+|1||2||3
+|}
+        """
+      And I click Save page button
+    Then newly created page should open
+      And table should be there:
+        | x | y | z |
+        | 1 | 2 | 3 |
+      
+Scenario: Print a empty table with a query SPARQL
+    Given I am at page that does not exist
+    And I has a empty graph http://example.com/data in the triplestore 
http://192.168.1.100:8181
+    When I click link Create
+      And I enter the wikitext:
+        """
+{{#sparql:
+SELECT * WHERE {
+GRAPH <http://example.com/data> 
+{ ?x ?y ?z . } 
+}
+|endpoint=http://192.168.1.100:8181/sparql/
+}}
+        """
+      And I click Save page button
+    Then newly created page should open
+      And LinkedWiki's table should be there:
+        | x | y | z |
+        
+Scenario: Print a table with a query SPARQL
+    Given I am at page that does not exist
+    And I has a empty graph http://example.com/data in the triplestore 
http://192.168.1.100:8181
+    And I do this SPARQL query in the triplestore http://192.168.1.100:8181:
+        """
+PREFIX dc: <http://purl.org/dc/elements/1.1/>
+INSERT DATA
+{ GRAPH <http://example.com/data> {
+  <http://example/book1> dc:title "Book 1" ;
+                         dc:creator "A.N.Other1" .
+  <http://example/book2> dc:title "Book 2" ;
+                         dc:creator "A.N.Other2" .
+}}
+        """
+    When I click link Create
+      And I enter the wikitext:
+        """
+{{#sparql:
+PREFIX dc: <http://purl.org/dc/elements/1.1/>
+SELECT ?title ?creator WHERE {
+GRAPH <http://example.com/data> 
+{ ?x dc:title ?title ;
+     dc:creator ?creator .
+} 
+} ORDER BY  ?title ?creator
+|endpoint=http://192.168.1.100:8181/sparql/
+}}
+        """
+      And I click Save page button
+    Then newly created page should open
+      And LinkedWiki's table should be there:
+        | title | creator |
+        | Book 1 | A.N.Other1 |
+        | Book 2 | A.N.Other2 |
diff --git a/test/step_definitions/sparql_steps.rb 
b/test/step_definitions/sparql_steps.rb
new file mode 100644
index 0000000..64f17ad
--- /dev/null
+++ b/test/step_definitions/sparql_steps.rb
@@ -0,0 +1,35 @@
+When(/^I enter the wikitext:$/) do |wikiText|  
+  on(EditPage).article_text = wikiText
+end
+
+Then(/^table should be there:$/) do |table|
+   nodesTR = Nokogiri::HTML(@browser.html).css(".wikitable tr")
+   tableResult = nodesTR.map {|tr| tr.css("th,td").map {|cell| 
cell.text.strip}}
+#   p tableResult
+#   p table.raw()
+   table.diff!(tableResult)
+end
+
+Given /^I has a empty graph ([^ ]*) in the triplestore ([^ ]*)$/ do 
|graph,endpoint|
+  c = Curl::Easy.http_delete("#{endpoint}/data/?graph=#{graph}")
+  c.status.should match(/^.*200.*$/i)
+end
+
+Then(/^LinkedWiki's table should be there:$/) do |table|
+   nodesTR = Nokogiri::HTML(@browser.html).css(".wikitable tr")
+   tableResult = nodesTR.map {|tr| tr.css("th,td").map {|cell| 
cell.text.strip}}
+   tableResult.delete(tableResult.last)
+#   p tableResult
+#   p table.raw()
+   table.diff!(tableResult)
+end
+
+When(/^I do this SPARQL query in the triplestore ([^ ]*):$/) do 
|endpoint,query|  
+  c = Curl::Easy.http_post("#{endpoint}/update/",
+                         Curl::PostField.content('update', query))
+  c.status.should match(/^.*200.*$/i)
+end
+
+
+
+

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I0c05be587e9c458118eba9779e6573514a44e547
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/LinkedWiki
Gerrit-Branch: REL1_21
Gerrit-Owner: Karima Rafes <karima.ra...@gmail.com>
Gerrit-Reviewer: Karima Rafes <karima.ra...@gmail.com>

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

Reply via email to