nilal 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +4 -0
- data/lib/nilal/assert.rb +19 -0
- data/lib/nilal/chunky.rb +42 -0
- data/lib/nilal/nilal.xpi +0 -0
- data/lib/nilal.rb +36 -0
- metadata +90 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5c88e4f92ef90a96aa46109de1295d1b0b101171
|
4
|
+
data.tar.gz: 06e643b621d5d87a2444feba89f9eadd731fdf31
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d96d58474e0aaa0a140c6ea5ca3a5be1669488d4eab79b6f2428649e0427c97079277da9f81f1aae7835f02a1e7412c9e9ea4a90e2a0161ad621bb5d08ee6311
|
7
|
+
data.tar.gz: 1b6f48cc4b4b759791774289d0104376271dfbbff92effa781c7be8cf5b10090935276ee3a8e0a16d5a2e847691ae5e018ffc942725193fb8b6ebc4b29d358e9
|
data/README.md
ADDED
data/lib/nilal/assert.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
module AssertNilal
|
2
|
+
extend RSpec::Matchers::DSL
|
3
|
+
|
4
|
+
matcher :match_image do |text|
|
5
|
+
match_for_should { |node|
|
6
|
+
capture node,text
|
7
|
+
compare_image text
|
8
|
+
}
|
9
|
+
match_for_should_not { |node|
|
10
|
+
}
|
11
|
+
end
|
12
|
+
|
13
|
+
def compare_image file_name
|
14
|
+
actual_file = "#{Dir.pwd}/features/images/#{file_name}.png"
|
15
|
+
expexcted_file = "#{Capybara.save_and_open_page_path}/#{file_name}.png"
|
16
|
+
diff_file = "#{Capybara.save_and_open_page_path}/#{file_name}_diff.png"
|
17
|
+
Chunk.new.compare actual_file,expexcted_file,diff_file
|
18
|
+
end
|
19
|
+
end
|
data/lib/nilal/chunky.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'chunky_png'
|
2
|
+
|
3
|
+
class Chunk
|
4
|
+
def compare actual_file,expexcted_file,diff_file
|
5
|
+
images = [
|
6
|
+
ChunkyPNG::Image.from_file(actual_file),
|
7
|
+
ChunkyPNG::Image.from_file(expexcted_file)
|
8
|
+
]
|
9
|
+
|
10
|
+
diff = 0
|
11
|
+
images.first.height.times do |y|
|
12
|
+
images.first.row(y).each_with_index do |pixel, x|
|
13
|
+
r_diff = r(pixel) + r(images.last[x,y]) - 2 * [r(pixel), r(images.last[x,y])].min
|
14
|
+
g_diff = g(pixel) + g(images.last[x,y]) - 2 * [g(pixel), g(images.last[x,y])].min
|
15
|
+
b_diff = b(pixel) + b(images.last[x,y]) - 2 * [b(pixel), b(images.last[x,y])].min
|
16
|
+
images.last[x,y] = rgb(r_diff,g_diff,b_diff)
|
17
|
+
diff = r_diff + g_diff+b_diff
|
18
|
+
end
|
19
|
+
end
|
20
|
+
images.last.save(diff_file)
|
21
|
+
diff == 0
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
def r (x)
|
26
|
+
ChunkyPNG::Color.r x
|
27
|
+
end
|
28
|
+
|
29
|
+
def g (x)
|
30
|
+
ChunkyPNG::Color.g x
|
31
|
+
end
|
32
|
+
|
33
|
+
def b (x)
|
34
|
+
ChunkyPNG::Color.b x
|
35
|
+
end
|
36
|
+
|
37
|
+
def rgb (r1,g1,b1)
|
38
|
+
ChunkyPNG::Color.rgb r1,g1,b1
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
data/lib/nilal/nilal.xpi
ADDED
Binary file
|
data/lib/nilal.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'capybara'
|
2
|
+
require 'nilal/chunky'
|
3
|
+
require 'nilal/assert'
|
4
|
+
|
5
|
+
module Nilal
|
6
|
+
def capture (element,file_name)
|
7
|
+
x = element.native.location.x
|
8
|
+
y = element.native.location.y
|
9
|
+
width = element.native.size.width
|
10
|
+
height = element.native.size.height
|
11
|
+
path = "#{Capybara.save_and_open_page_path}/#{file_name}.png"
|
12
|
+
touch_file Capybara.save_and_open_page_path,"#{file_name}.png"
|
13
|
+
script =
|
14
|
+
"var nilal_element = document.getElementById('nilal_client');
|
15
|
+
if (nilal_element == null){
|
16
|
+
nilal_element = document.createElement('nilal_client');
|
17
|
+
nilal_element.id = 'nilal_client';
|
18
|
+
}
|
19
|
+
nilal_element.setAttribute('x', #{x});
|
20
|
+
nilal_element.setAttribute('y', #{y});
|
21
|
+
nilal_element.setAttribute('width', #{width});
|
22
|
+
nilal_element.setAttribute('height',#{height} );
|
23
|
+
nilal_element.setAttribute('path', '#{path}');
|
24
|
+
document.documentElement.appendChild(nilal_element);
|
25
|
+
var evt = document.createEvent('Events');
|
26
|
+
evt.initEvent('CatchNilal', true, false);
|
27
|
+
nilal_element.dispatchEvent(evt); "
|
28
|
+
script.delete!("\n")
|
29
|
+
page.execute_script(script)
|
30
|
+
end
|
31
|
+
|
32
|
+
def touch_file (folder,file)
|
33
|
+
FileUtils.mkdir_p folder unless File.exists? folder
|
34
|
+
FileUtils.touch "#{folder}/#{file}"
|
35
|
+
end
|
36
|
+
end
|
metadata
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: nilal
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- deepak p
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-05-03 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: capybara
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.1.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.1.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: oily_png
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.1.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.1.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: selenium-webdriver
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.0'
|
55
|
+
description: Image Capturing and assertion at element level
|
56
|
+
email:
|
57
|
+
executables: []
|
58
|
+
extensions: []
|
59
|
+
extra_rdoc_files: []
|
60
|
+
files:
|
61
|
+
- README.md
|
62
|
+
- lib/nilal.rb
|
63
|
+
- lib/nilal/assert.rb
|
64
|
+
- lib/nilal/chunky.rb
|
65
|
+
- lib/nilal/nilal.xpi
|
66
|
+
homepage: https://github.com/paramadeep/nilal_rb
|
67
|
+
licenses:
|
68
|
+
- MIT
|
69
|
+
metadata: {}
|
70
|
+
post_install_message:
|
71
|
+
rdoc_options: []
|
72
|
+
require_paths:
|
73
|
+
- lib
|
74
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
requirements: []
|
85
|
+
rubyforge_project:
|
86
|
+
rubygems_version: 2.2.2
|
87
|
+
signing_key:
|
88
|
+
specification_version: 4
|
89
|
+
summary: Image Capturing and assertion at element level
|
90
|
+
test_files: []
|