Vikassy has uploaded a new change for review.

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

Change subject: [Browser-test]Adding support for Language Screenshot
......................................................................

[Browser-test]Adding support for Language Screenshot

Change-Id: I0f27aec482458b6f04aa913426042f78695d451d
---
M modules/ve-mw/test/browser/Gemfile
M modules/ve-mw/test/browser/Gemfile.lock
M modules/ve-mw/test/browser/features/headings.feature
M modules/ve-mw/test/browser/features/step_definitions/headings_steps.rb
M modules/ve-mw/test/browser/features/support/env.rb
M modules/ve-mw/test/browser/features/support/hooks.rb
M modules/ve-mw/test/browser/features/support/pages/visual_editor_page.rb
7 files changed, 58 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/16/135616/1

diff --git a/modules/ve-mw/test/browser/Gemfile 
b/modules/ve-mw/test/browser/Gemfile
index 316fff2..1d06acd 100755
--- a/modules/ve-mw/test/browser/Gemfile
+++ b/modules/ve-mw/test/browser/Gemfile
@@ -5,3 +5,5 @@
 
 gem "mediawiki_selenium"
 gem "mediawiki_api"
+gem 'chunky_png'
+
diff --git a/modules/ve-mw/test/browser/Gemfile.lock 
b/modules/ve-mw/test/browser/Gemfile.lock
index 5075a33..fb70ab8 100644
--- a/modules/ve-mw/test/browser/Gemfile.lock
+++ b/modules/ve-mw/test/browser/Gemfile.lock
@@ -4,6 +4,7 @@
     builder (3.2.2)
     childprocess (0.5.3)
       ffi (~> 1.0, >= 1.0.11)
+    chunky_png (1.3.1)
     cucumber (1.3.14)
       builder (>= 2.1.2)
       diff-lcs (>= 1.1.3)
@@ -77,5 +78,6 @@
   ruby
 
 DEPENDENCIES
+  chunky_png
   mediawiki_api
   mediawiki_selenium
diff --git a/modules/ve-mw/test/browser/features/headings.feature 
b/modules/ve-mw/test/browser/features/headings.feature
index 73286e6..5b92720 100644
--- a/modules/ve-mw/test/browser/features/headings.feature
+++ b/modules/ve-mw/test/browser/features/headings.feature
@@ -5,6 +5,11 @@
     Given I go to the "Headings VisualEditor Test" page with content "Headings 
VisualEditor Test"
       And I make the text "Headings VisualEditor Test" be selected
 
+  @language_screenshot
+  Scenario: Check presence of all headings values
+    When I click the down arrow on Headings interface
+    Then I should see Headings pull-down menu
+
   Scenario Outline: Cycle through headings values
     When I click the down arrow on Headings interface
       And I click <headings_interface_name>
diff --git 
a/modules/ve-mw/test/browser/features/step_definitions/headings_steps.rb 
b/modules/ve-mw/test/browser/features/step_definitions/headings_steps.rb
index 0083891..0d51cda 100644
--- a/modules/ve-mw/test/browser/features/step_definitions/headings_steps.rb
+++ b/modules/ve-mw/test/browser/features/step_definitions/headings_steps.rb
@@ -19,6 +19,10 @@
   end
 end
 
+Then(/^I should see Headings pull-down menu$/) do 
+  on(VisualEditorPage).heading_dropdown_menus_element.when_present.should 
be_visible
+end
+
 When(/^I click Heading$/) do
   on(VisualEditorPage).heading_element.when_present.click
 end
diff --git a/modules/ve-mw/test/browser/features/support/env.rb 
b/modules/ve-mw/test/browser/features/support/env.rb
index ec7b353..0b22bbe 100644
--- a/modules/ve-mw/test/browser/features/support/env.rb
+++ b/modules/ve-mw/test/browser/features/support/env.rb
@@ -1,5 +1,6 @@
 require_relative "hooks"
 require "mediawiki_selenium"
 require "mediawiki_api"
+require "chunky_png"
 
 include MediawikiApi
diff --git a/modules/ve-mw/test/browser/features/support/hooks.rb 
b/modules/ve-mw/test/browser/features/support/hooks.rb
index 6984242..79e89d4 100644
--- a/modules/ve-mw/test/browser/features/support/hooks.rb
+++ b/modules/ve-mw/test/browser/features/support/hooks.rb
@@ -11,3 +11,45 @@
     $edit_user_page_login=true
   end
 end
+
+After("@language_screenshot") do |scenario|
+       if @browser && @current_page && ENV["LANGUAGE_SCREENSHOT"]
+               screenshot_hash = 
{"VisualEditor_Headings:_Check_presence_of_all_headings_values" => 
["heading_menus_element","heading_dropdown_menus_element"]}
+         require "fileutils"
+         screenshot_directory = ENV["LANGUAGE_SCREENSHOT_PATH"] || 
"screenshots"
+         FileUtils.mkdir_p screenshot_directory
+               file_name = test_name(scenario).gsub(/ /, '_')
+               if ENV["LANGUAGE_SCREENSHOT_CODE"]
+                       path = 
"#{screenshot_directory}/#{file_name}."+ENV["LANGUAGE_SCREENSHOT_CODE"]+".png"
+               else
+                       path = "#{screenshot_directory}/#{file_name}.png"
+               end
+                       
+               @browser.screenshot.save path
+               embed path, "image/png"
+               #coordinates for croping
+               min_x=99999
+               min_y=99999
+               max_x=0
+               max_y=0
+               #Finding minimum bounding rectangle
+               screenshot_hash[file_name].each do |ve_element|
+                       html_element = 
@current_page.method(ve_element).call.element
+                       location_x = html_element.wd.location.x
+                       location_y = html_element.wd.location.y
+                       width = html_element.wd.size.width
+                       height = html_element.wd.size.height
+
+                       min_x=location_x if location_x < min_x
+                       min_y=location_y if location_y < min_y
+                       max_x=location_x+width if location_x+width > max_x
+                       max_y=location_y+height if location_y+height > max_y
+               end
+               #Croping the image
+               element = ChunkyPNG::Image.from_file(path)
+               element.crop!(min_x,min_y,max_x-min_x,max_y-min_y)
+               element.save(path)
+       end
+
+end
+
diff --git 
a/modules/ve-mw/test/browser/features/support/pages/visual_editor_page.rb 
b/modules/ve-mw/test/browser/features/support/pages/visual_editor_page.rb
index 4e793f3..d4d9cf6 100644
--- a/modules/ve-mw/test/browser/features/support/pages/visual_editor_page.rb
+++ b/modules/ve-mw/test/browser/features/support/pages/visual_editor_page.rb
@@ -34,6 +34,8 @@
   a(:subheading3, text: /Sub-heading 3/)
   a(:subheading4, text: /Sub-heading 4/)
   span(:switch_to_source_editing, class: "oo-ui-iconedElement-icon 
oo-ui-icon-source")
+  div(:heading_menus, class: "oo-ui-widget oo-ui-toolGroup 
oo-ui-indicatedElement oo-ui-popupToolGroup oo-ui-menuToolGroup 
oo-ui-labeledElement oo-ui-widget-enabled oo-ui-popupToolGroup-active")
+  div(:heading_dropdown_menus, class: "oo-ui-toolGroup-tools 
oo-ui-clippableElement-clippable")
 
   if ENV["BROWSER"] == "chrome"
     div(:tools_menu, class: "oo-ui-widget oo-ui-widget-enabled oo-ui-toolGroup 
oo-ui-iconedElement oo-ui-popupToolGroup oo-ui-listToolGroup")

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0f27aec482458b6f04aa913426042f78695d451d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Vikassy <vikasyaligar...@gmail.com>

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

Reply via email to