cutara 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.
- data/.gitignore +18 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +6 -0
- data/assets/cukes.feature +170 -0
- data/assets/env.rb +13 -0
- data/assets/step_definitions/ru/action_steps.rb +25 -0
- data/assets/step_definitions/ru/data_input_steps.rb +44 -0
- data/assets/step_definitions/ru/open_steps.rb +26 -0
- data/assets/step_definitions/ru/pagination_steps.rb +25 -0
- data/assets/step_definitions/ru/press_steps.rb +27 -0
- data/assets/step_definitions/ru/table_steps.rb +66 -0
- data/assets/step_definitions/ru/validator_steps.rb +60 -0
- data/assets/tarantula.yml +4 -0
- data/cutara.gemspec +28 -0
- data/generation/Action.rb +20 -0
- data/generation/Application.rb +80 -0
- data/generation/Clickable.rb +14 -0
- data/generation/Eset.rb +18 -0
- data/generation/Input.rb +18 -0
- data/generation/Page.rb +62 -0
- data/generation/PageElement.rb +11 -0
- data/generation/Table.rb +22 -0
- data/generation/Validator.rb +12 -0
- data/generation/main/env.rb +24 -0
- data/generation/main/generate_steps.rb +205 -0
- data/lib/CucumberTarantulaFormatter.rb +287 -0
- data/lib/Exceptions.rb +4 -0
- data/lib/Helper.rb +82 -0
- data/lib/TarantulaUpdater.rb +62 -0
- data/lib/version.rb +4 -0
- data/tasks/build.rake +43 -0
- data/tasks/exec.rake +14 -0
- data/tasks/generate.rake +13 -0
- data/tasks/known.rake +24 -0
- data/tasks/local_exec.rake +8 -0
- metadata +212 -0
@@ -0,0 +1,60 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
def run_action_validator(action_name, check_value)
|
3
|
+
res = PageObjectWrapper.current_page.send action_name.to_action
|
4
|
+
res.should eq check_value
|
5
|
+
end
|
6
|
+
|
7
|
+
def run_action_with_args_validator(action_name, params_string, check_value)
|
8
|
+
args = params_string.to_params.values
|
9
|
+
res = PageObjectWrapper.current_page.send action_name.to_action, *args
|
10
|
+
res.should eq check_value
|
11
|
+
end
|
12
|
+
|
13
|
+
def complex_select_validator(find_in, t_name, find_by, value, check_value)
|
14
|
+
current_page = PageObjectWrapper.current_page
|
15
|
+
res = current_page.send t_name.to_select, find_in.to_label.to_sym, { find_by.to_label.to_sym => value }
|
16
|
+
res.text.should =~ /#{check_value}/
|
17
|
+
end
|
18
|
+
|
19
|
+
def complex_select_regexp_validator(find_in, t_name, find_by, value, check_value)
|
20
|
+
current_page = PageObjectWrapper.current_page
|
21
|
+
res = current_page.send t_name.to_select, find_in.to_label.to_sym, { find_by.to_label.to_sym => Regexp.new(value) }
|
22
|
+
res.text.should =~ /#{check_value}/
|
23
|
+
end
|
24
|
+
|
25
|
+
def select_by_row_num_validator(col_num, find_in, t_name, check_value)
|
26
|
+
current_page = PageObjectWrapper.current_page
|
27
|
+
res = current_page.send t_name.to_select, find_in.to_label.to_sym, :row => col_num.to_i
|
28
|
+
res.text.should =~ /#{check_value}/
|
29
|
+
end
|
30
|
+
|
31
|
+
Тогда(/^открывается страница "(.*?)"$/) do |arg1|
|
32
|
+
PageObjectWrapper.current_page? arg1.to_label.to_sym
|
33
|
+
end
|
34
|
+
|
35
|
+
Тогда(/^проверка "(.*?)" вернет "(.*?)"$/) do |arg1, arg2|
|
36
|
+
current_page = PageObjectWrapper.current_page
|
37
|
+
res = current_page.send arg1.to_validator
|
38
|
+
res.should eq arg2
|
39
|
+
end
|
40
|
+
|
41
|
+
Тогда(/^действие "(.*?)" вернет "(.*?)"$/) do |arg1, arg2|
|
42
|
+
run_action_validator(arg1, arg2)
|
43
|
+
end
|
44
|
+
|
45
|
+
Тогда(/^выполнение действия "(.*?)" с параметрами "(.*?)" вернет "(.*?)"$/) do |arg1, arg2, arg3|
|
46
|
+
run_action_with_args_validator(arg1, arg2, arg3)
|
47
|
+
end
|
48
|
+
|
49
|
+
Тогда(/^в "(.*?)" строке колонки "(.*?)" таблицы "(.*?)" содержится "(.*?)"$/) do |arg1, arg2, arg3, arg4|
|
50
|
+
select_by_row_num_validator(arg1, arg2, arg3, arg4)
|
51
|
+
end
|
52
|
+
|
53
|
+
Тогда(/^в колонке "(.*?)" таблицы "(.*?)" с "(.*?)" равным "(.*?)" содержится "(.*?)"$/) do |arg1, arg2, arg3, arg4, arg5|
|
54
|
+
complex_select_validator(arg1, arg2, arg3, arg4, arg5)
|
55
|
+
end
|
56
|
+
|
57
|
+
Тогда(/^в колонке "(.*?)" таблицы "(.*?)" с "(.*?)" похожим на "(.*?)" содержится "(.*?)"$/) do |arg1, arg2, arg3, arg4, arg5|
|
58
|
+
complex_select_regexp_validator(arg1, arg2, arg3, arg4, arg5)
|
59
|
+
end
|
60
|
+
|
data/cutara.gemspec
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "cutara"
|
8
|
+
gem.version = Cutara::VERSION
|
9
|
+
gem.authors = ["Evgeniy Khatko"]
|
10
|
+
gem.email = ["evgeniy.khatko@gmail.com"]
|
11
|
+
gem.description = %q{ Cutara is the bridge between Tarantula and Cucumber }
|
12
|
+
gem.summary = %q{ Cutara provides rake tasks for integration between Cucumber (test automation tool) and Taranula (test-management tool) }
|
13
|
+
gem.homepage = ""
|
14
|
+
gem.add_dependency "page_object_wrapper"
|
15
|
+
gem.add_dependency "rspec"
|
16
|
+
gem.add_dependency "babosa"
|
17
|
+
gem.add_dependency "cucumber"
|
18
|
+
gem.add_dependency "httparty"
|
19
|
+
gem.add_dependency "activerecord"
|
20
|
+
gem.add_dependency "rake"
|
21
|
+
gem.add_development_dependency "debugger"
|
22
|
+
gem.add_development_dependency "magic_encoding"
|
23
|
+
|
24
|
+
gem.files = `git ls-files`.split($/)
|
25
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
26
|
+
gem.test_files = gem.files.grep(%r{^(test|spec)/})
|
27
|
+
gem.require_paths = ["lib", "tasks", "generation"]
|
28
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'PageElement'
|
2
|
+
|
3
|
+
module Cutara
|
4
|
+
class Action < PageElement
|
5
|
+
attr_accessor :params
|
6
|
+
|
7
|
+
def initialize label, params=nil
|
8
|
+
super label
|
9
|
+
@params = params
|
10
|
+
end
|
11
|
+
|
12
|
+
def to_snippet
|
13
|
+
if @params
|
14
|
+
return "\taction #{@label.inspect} do |#{params.join(", ")}|\n\tend\n\n"
|
15
|
+
else
|
16
|
+
return "\taction #{@label.inspect} do\n\tend\n\n"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'Page'
|
2
|
+
require 'Action'
|
3
|
+
require 'Eset'
|
4
|
+
require 'Input'
|
5
|
+
require 'Clickable'
|
6
|
+
require 'Table'
|
7
|
+
require 'Validator'
|
8
|
+
require 'Pagination'
|
9
|
+
|
10
|
+
module Cutara
|
11
|
+
|
12
|
+
class Application
|
13
|
+
attr_accessor :current_page
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
@current_page = nil
|
17
|
+
end
|
18
|
+
|
19
|
+
def pages
|
20
|
+
Page.pages
|
21
|
+
end
|
22
|
+
|
23
|
+
def add_page label
|
24
|
+
p = Page.find_page(label) || Page.new(label)
|
25
|
+
(Page.pages << p).uniq!
|
26
|
+
@current_page = p
|
27
|
+
end
|
28
|
+
|
29
|
+
def add_action label, params=nil
|
30
|
+
a = @current_page.find_action(label) || Action.new(label, params)
|
31
|
+
(@current_page.actions << a).uniq!
|
32
|
+
end
|
33
|
+
|
34
|
+
def add_menu label
|
35
|
+
@current_page.inputs.each{ |i| i.menus << label; i.menus.uniq! }
|
36
|
+
@current_page.esets.each{ |e| e.menus << label; e.menus.uniq! }
|
37
|
+
end
|
38
|
+
|
39
|
+
def add_eset label, menu
|
40
|
+
eset = @current_page.find_eset(label) || Eset.new(label)
|
41
|
+
eset.menus << menu
|
42
|
+
(@current_page.esets << eset).uniq!
|
43
|
+
end
|
44
|
+
|
45
|
+
def add_input label
|
46
|
+
i = @current_page.find_input(label) || Input.new(label)
|
47
|
+
(@current_page.inputs << i).uniq!
|
48
|
+
end
|
49
|
+
|
50
|
+
def add_link label
|
51
|
+
c = @current_page.find_clickable(label, :link) || Clickable.new(label, :link)
|
52
|
+
(@current_page.clickables << c).uniq!
|
53
|
+
end
|
54
|
+
|
55
|
+
def add_button label
|
56
|
+
c = @current_page.find_clickable(label, :button) || Clickable.new(label, :button)
|
57
|
+
(@current_page.clickables << c).uniq!
|
58
|
+
end
|
59
|
+
|
60
|
+
def add_element label
|
61
|
+
c = @current_page.find_clickable(label, :element) || Clickable.new(label, :element)
|
62
|
+
(@current_page.clickables << c).uniq!
|
63
|
+
end
|
64
|
+
|
65
|
+
def add_table label
|
66
|
+
t = @current_page.find_table(label) || Table.new(label)
|
67
|
+
(@current_page.tables << t).uniq!
|
68
|
+
t
|
69
|
+
end
|
70
|
+
|
71
|
+
def add_validator label
|
72
|
+
v = @current_page.find_validator(label) || Validator.new(label)
|
73
|
+
(@current_page.validators << v).uniq!
|
74
|
+
end
|
75
|
+
|
76
|
+
def add_pagination
|
77
|
+
@current_page.pagination = :pagination
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'PageElement'
|
2
|
+
module Cutara
|
3
|
+
class Clickable < PageElement
|
4
|
+
attr_accessor :type
|
5
|
+
def initialize label, type
|
6
|
+
super label
|
7
|
+
@type = type
|
8
|
+
end
|
9
|
+
|
10
|
+
def to_snippet
|
11
|
+
"\t#{@type} #{@label.inspect} do\n\t\tlocator\n\tend\n\n"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/generation/Eset.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'PageElement'
|
2
|
+
module Cutara
|
3
|
+
class Eset < PageElement
|
4
|
+
attr_accessor :menus
|
5
|
+
def initialize label
|
6
|
+
super label
|
7
|
+
@menus = []
|
8
|
+
end
|
9
|
+
|
10
|
+
def to_snippet
|
11
|
+
out = "\telements_set #{@label.inspect} do\n"
|
12
|
+
@menus.each{|menu|
|
13
|
+
out += "\t\tmenu #{menu.inspect}\n"
|
14
|
+
}
|
15
|
+
out += "\tend\n\n"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/generation/Input.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'PageElement'
|
2
|
+
module Cutara
|
3
|
+
class Input < PageElement
|
4
|
+
attr_accessor :menus
|
5
|
+
def initialize label
|
6
|
+
super label
|
7
|
+
@menus = []
|
8
|
+
end
|
9
|
+
|
10
|
+
def to_snippet
|
11
|
+
out = "\ttext_field #{@label.inspect} do\n\t\tlocator\n"
|
12
|
+
@menus.each{|menu|
|
13
|
+
out += "\t\tmenu #{menu.inspect}\n"
|
14
|
+
}
|
15
|
+
out += "\tend\n\n"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/generation/Page.rb
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'PageElement'
|
2
|
+
module Cutara
|
3
|
+
class Page < PageElement
|
4
|
+
attr_accessor :label, :actions, :esets, :inputs, :clickables, :tables, :pagination, :validators
|
5
|
+
@@pages = []
|
6
|
+
|
7
|
+
def initialize label
|
8
|
+
@label = label
|
9
|
+
@actions = []
|
10
|
+
@esets = []
|
11
|
+
@inputs = []
|
12
|
+
@clickables = []
|
13
|
+
@tables = []
|
14
|
+
@validators = []
|
15
|
+
@pagination = nil
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.pages
|
19
|
+
@@pages
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_snippet
|
23
|
+
out = "PageObjectWrapper.define_page #{@label.inspect} do\n\tlocator\n"
|
24
|
+
@clickables.each{ |e| out += e.to_snippet }
|
25
|
+
@inputs.each{ |e| out += e.to_snippet }
|
26
|
+
@esets.each{ |e| out += e.to_snippet }
|
27
|
+
@tables.each{ |e| out += e.to_snippet }
|
28
|
+
@actions.each{ |e| out += e.to_snippet }
|
29
|
+
@validators.each{ |e| out += e.to_snippet }
|
30
|
+
out += "\tpagination :pagination do\n\tend\n" if @pagination
|
31
|
+
out += "end"
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.find_page label
|
35
|
+
@@pages.select{|e| e.label == label}.first
|
36
|
+
end
|
37
|
+
|
38
|
+
def find_action label
|
39
|
+
@actions.select{|e| e.label == label}.first
|
40
|
+
end
|
41
|
+
|
42
|
+
def find_clickable label, type
|
43
|
+
@clickables.select{|e| e.label == label and e.type == type}.first
|
44
|
+
end
|
45
|
+
|
46
|
+
def find_eset label
|
47
|
+
@esets.select{|e| e.label == label}.first
|
48
|
+
end
|
49
|
+
|
50
|
+
def find_input label
|
51
|
+
@inputs.select{|e| e.label == label }.first
|
52
|
+
end
|
53
|
+
|
54
|
+
def find_table label
|
55
|
+
@tables.select{|e| e.label == label}.first
|
56
|
+
end
|
57
|
+
|
58
|
+
def find_validator label
|
59
|
+
@validators.select{|e| e.label == label}.first
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/generation/Table.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'PageElement'
|
2
|
+
module Cutara
|
3
|
+
class Table < PageElement
|
4
|
+
attr_accessor :columns
|
5
|
+
def initialize label
|
6
|
+
super label
|
7
|
+
@columns = []
|
8
|
+
end
|
9
|
+
|
10
|
+
def to_snippet
|
11
|
+
out = ""
|
12
|
+
out += "\ttable #{@label.inspect} do\n\t\tlocator\n"
|
13
|
+
out += "\t\theader #{@columns.inspect}\n"
|
14
|
+
out += "\tend\n\n"
|
15
|
+
end
|
16
|
+
|
17
|
+
def add_column label
|
18
|
+
@columns << label
|
19
|
+
@columns.uniq!
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'Application'
|
3
|
+
require 'Helper'
|
4
|
+
module Cutara
|
5
|
+
APP = Application.new
|
6
|
+
end
|
7
|
+
|
8
|
+
World{ Cutara }
|
9
|
+
|
10
|
+
at_exit do
|
11
|
+
Cutara::APP.pages.each{ |p|
|
12
|
+
file_name = "#{ROOT}/pages/#{p.label.to_s}.rb"
|
13
|
+
raise "directory #{ROOT}/pages not found, run rake cutara:build first" unless File.exist? "#{ROOT}/pages"
|
14
|
+
data = p.to_snippet
|
15
|
+
unless File.exist? file_name
|
16
|
+
File.open(file_name, "w") do |f|
|
17
|
+
f.puts "# -*- encoding : utf-8 -*-"
|
18
|
+
f.puts data
|
19
|
+
f.close
|
20
|
+
end
|
21
|
+
end
|
22
|
+
puts data
|
23
|
+
}
|
24
|
+
end
|
@@ -0,0 +1,205 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'Application'
|
3
|
+
include Cutara
|
4
|
+
|
5
|
+
# open_steps
|
6
|
+
Допустим /^открыта страница "(.*?)"$/ do |arg1|
|
7
|
+
APP.add_page arg1.to_label.to_sym
|
8
|
+
end
|
9
|
+
|
10
|
+
Допустим /^страница "(.*?)" открыта с параметрами "(.*?)"$/ do |arg1, arg2|
|
11
|
+
APP.add_page arg1.to_label.to_sym
|
12
|
+
end
|
13
|
+
|
14
|
+
Если /^открыть страницу "(.*?)"$/ do |arg1|
|
15
|
+
APP.add_page arg1.to_label.to_sym
|
16
|
+
end
|
17
|
+
|
18
|
+
Если /^страницу "(.*?)" открыть с параметрами "(.*?)"$/ do |arg1, arg2|
|
19
|
+
APP.add_page arg1.to_label.to_sym
|
20
|
+
end
|
21
|
+
|
22
|
+
# action_steps
|
23
|
+
Допустим /^выполнено действие "(.*?)"$/ do |arg1|
|
24
|
+
APP.add_action arg1.to_label.to_sym
|
25
|
+
end
|
26
|
+
|
27
|
+
Допустим /^действие "(.*?)" выполнено с параметрами "(.*?)"$/ do |arg1, arg2|
|
28
|
+
args = arg2.to_params.keys
|
29
|
+
APP.add_action arg1.to_label.to_sym, args
|
30
|
+
end
|
31
|
+
|
32
|
+
Если /^выполнить действие "(.*?)"$/ do |arg1|
|
33
|
+
APP.add_action arg1.to_label.to_sym
|
34
|
+
end
|
35
|
+
|
36
|
+
Если /^действие "(.*?)" выполнить с параметрами "(.*?)"$/ do |arg1, arg2|
|
37
|
+
args = arg2.to_params.keys
|
38
|
+
APP.add_action arg1.to_label.to_sym, args
|
39
|
+
end
|
40
|
+
|
41
|
+
# data_input_steps
|
42
|
+
Пусть /^на странице введены данные типа "(.*?)"$/ do |arg1|
|
43
|
+
APP.add_menu arg1.to_label.to_sym
|
44
|
+
end
|
45
|
+
|
46
|
+
Пусть /^в набор элементов "(.*?)" введены данные типа "(.*?)"$/ do |arg1, arg2|
|
47
|
+
APP.add_eset arg1.to_label.to_sym, arg2.to_label.to_sym
|
48
|
+
end
|
49
|
+
|
50
|
+
Пусть /^на форме "(.*?)" введены данные типа "(.*?)"$/ do |arg1, arg2|
|
51
|
+
APP.add_eset arg1.to_label.to_sym, arg2.to_label.to_sym
|
52
|
+
end
|
53
|
+
|
54
|
+
Пусть /^в поле "(.*?)" введено значение "(.*?)"$/ do |arg1, arg2|
|
55
|
+
APP.add_input arg1.to_label.to_sym
|
56
|
+
end
|
57
|
+
|
58
|
+
Если /^на странице ввести данные типа "(.*?)"$/ do |arg1|
|
59
|
+
APP.add_menu arg1.to_label.to_sym
|
60
|
+
end
|
61
|
+
|
62
|
+
Если /^в набор элементов "(.*?)" ввести данные типа "(.*?)"$/ do |arg1, arg2|
|
63
|
+
APP.add_eset arg1.to_label.to_sym, arg2.to_label.to_sym
|
64
|
+
end
|
65
|
+
|
66
|
+
Если /^на форме "(.*?)" ввести данные типа "(.*?)"$/ do |arg1, arg2|
|
67
|
+
APP.add_eset arg1.to_label.to_sym, arg2.to_label.to_sym
|
68
|
+
end
|
69
|
+
|
70
|
+
Если /^в поле "(.*?)" ввести значение "(.*?)"$/ do |arg1, arg2|
|
71
|
+
APP.add_input arg1.to_label.to_sym
|
72
|
+
end
|
73
|
+
|
74
|
+
# press_steps
|
75
|
+
Допустим /^была нажата ссылка "(.*?)"$/ do |arg1|
|
76
|
+
APP.add_link arg1.to_label.to_sym
|
77
|
+
end
|
78
|
+
|
79
|
+
Допустим /^была нажата кнопка "(.*?)"$/ do |arg1|
|
80
|
+
APP.add_button arg1.to_label.to_sym
|
81
|
+
end
|
82
|
+
|
83
|
+
Допустим /^был нажат элемент "(.*?)"$/ do |arg1|
|
84
|
+
APP.add_element arg1.to_label.to_sym
|
85
|
+
end
|
86
|
+
|
87
|
+
Если /^нажать ссылку "(.*?)"$/ do |arg1|
|
88
|
+
APP.add_link arg1.to_label.to_sym
|
89
|
+
end
|
90
|
+
|
91
|
+
Если /^нажать кнопку "(.*?)"$/ do |arg1|
|
92
|
+
APP.add_button arg1.to_label.to_sym
|
93
|
+
end
|
94
|
+
|
95
|
+
Если /^нажать на элемент "(.*?)"$/ do |arg1|
|
96
|
+
APP.add_element arg1.to_label.to_sym
|
97
|
+
end
|
98
|
+
|
99
|
+
# table_steps
|
100
|
+
Допустим /^в таблице "(.*?)" была выбрана ячейка колонки "(.*?)" с "(.*?)" равным "(.*?)"$/ do |arg1, arg2, arg3, arg4|
|
101
|
+
t = APP.add_table arg1.to_label.to_sym
|
102
|
+
t.add_column arg2.to_label.to_sym
|
103
|
+
end
|
104
|
+
|
105
|
+
Допустим /^в таблице "(.*?)" была выбрана ячейка колонки "(.*?)" с "(.*?)" похожим на "(.*?)"$/ do |arg1, arg2, arg3, arg4|
|
106
|
+
t = APP.add_table arg1.to_label.to_sym
|
107
|
+
t.add_column arg2.to_label.to_sym
|
108
|
+
end
|
109
|
+
|
110
|
+
Допустим /^в таблице "(.*?)" была выбрана ячейка с "(.*?)" похожим на "(.*?)"$/ do |arg1, arg2, arg3|
|
111
|
+
t = APP.add_table arg1.to_label.to_sym
|
112
|
+
t.add_column arg2.to_label.to_sym
|
113
|
+
end
|
114
|
+
|
115
|
+
Допустим /^в таблице "(.*?)" была выбрана ячейка с "(.*?)" равным "(.*?)"$/ do |arg1, arg2, arg3|
|
116
|
+
t = APP.add_table arg1.to_label.to_sym
|
117
|
+
t.add_column arg2.to_label.to_sym
|
118
|
+
end
|
119
|
+
|
120
|
+
Допустим /^в таблице "(.*?)" был выбран элемент колонки "(.*?)"$/ do |arg1, arg2|
|
121
|
+
t = APP.add_table arg1.to_label.to_sym
|
122
|
+
t.add_column arg2.to_label.to_sym
|
123
|
+
end
|
124
|
+
|
125
|
+
Допустим /^в таблице "(.*?)" был выбран элемент колонки "(.*?)" из "(.*?)" строки$/ do |arg1, arg2, arg3|
|
126
|
+
t = APP.add_table arg1.to_label.to_sym
|
127
|
+
t.add_column arg2.to_label.to_sym
|
128
|
+
end
|
129
|
+
|
130
|
+
Если /^в таблице "(.*?)" выбрать ячейку колонки "(.*?)" с "(.*?)" равным "(.*?)"$/ do |arg1, arg2, arg3, arg4|
|
131
|
+
t = APP.add_table arg1.to_label.to_sym
|
132
|
+
t.add_column arg2.to_label.to_sym
|
133
|
+
end
|
134
|
+
|
135
|
+
Если /^в таблице "(.*?)" выбрать ячейку с "(.*?)" похожим на "(.*?)"$/ do |arg1, arg2, arg3|
|
136
|
+
t = APP.add_table arg1.to_label.to_sym
|
137
|
+
t.add_column arg2.to_label.to_sym
|
138
|
+
end
|
139
|
+
|
140
|
+
Если /^в таблице "(.*?)" выбрать ячейку с "(.*?)" равным "(.*?)"$/ do |arg1, arg2, arg3|
|
141
|
+
t = APP.add_table arg1.to_label.to_sym
|
142
|
+
t.add_column arg2.to_label.to_sym
|
143
|
+
end
|
144
|
+
|
145
|
+
Если /^в таблице "(.*?)" выбрать элемент колонки "(.*?)"$/ do |arg1, arg2|
|
146
|
+
t = APP.add_table arg1.to_label.to_sym
|
147
|
+
t.add_column arg2.to_label.to_sym
|
148
|
+
end
|
149
|
+
|
150
|
+
Если /^в таблице "(.*?)" выбрать элемент колонки "(.*?)" из "(.*?)" строки$/ do |arg1, arg2, arg3|
|
151
|
+
t = APP.add_table arg1.to_label.to_sym
|
152
|
+
t.add_column arg2.to_label.to_sym
|
153
|
+
end
|
154
|
+
# pagination_steps
|
155
|
+
Допустим /^открыта "(.*?)" страница пагинации$/ do |arg1|
|
156
|
+
APP.add_pagination
|
157
|
+
end
|
158
|
+
|
159
|
+
Допустим /^на каждой странице пагинации выполнить действие "(.*?)"$/ do |arg1|
|
160
|
+
APP.add_pagination
|
161
|
+
APP.add_action arg1.to_label.to_sym
|
162
|
+
end
|
163
|
+
|
164
|
+
Допустим /^на первых "(.*?)" страницах пагинации выполнить действие "(.*?)"$/ do |arg1, arg2|
|
165
|
+
APP.add_pagination
|
166
|
+
APP.add_action arg2.to_label.to_sym
|
167
|
+
end
|
168
|
+
|
169
|
+
Допустим /^перейти на "(.*?)" страницу пагинации$/ do |arg1|
|
170
|
+
APP.add_pagination
|
171
|
+
end
|
172
|
+
|
173
|
+
# validation_steps
|
174
|
+
Тогда(/^открывается страница "(.*?)"$/) do |arg1|
|
175
|
+
APP.add_page arg1.to_label.to_sym
|
176
|
+
end
|
177
|
+
|
178
|
+
Тогда(/^проверка "(.*?)" вернет "(.*?)"$/) do |arg1, arg2|
|
179
|
+
APP.add_validator arg1.to_label.to_sym
|
180
|
+
end
|
181
|
+
|
182
|
+
Тогда(/^действие "(.*?)" вернет "(.*?)"$/) do |arg1, arg2|
|
183
|
+
APP.add_action arg1.to_label.to_sym
|
184
|
+
end
|
185
|
+
|
186
|
+
Тогда(/^выполнение действия "(.*?)" с параметрами "(.*?)" вернет "(.*?)"$/) do |arg1, arg2, arg3|
|
187
|
+
args = arg2.to_params.keys
|
188
|
+
APP.add_action arg1.to_label.to_sym, args
|
189
|
+
end
|
190
|
+
|
191
|
+
Тогда(/^в "(.*?)" строке колонки "(.*?)" таблицы "(.*?)" содержится "(.*?)"$/) do |arg1, arg2, arg3, arg4|
|
192
|
+
t = APP.add_table arg3.to_label.to_sym
|
193
|
+
t.add_column arg2.to_label.to_sym
|
194
|
+
end
|
195
|
+
|
196
|
+
Тогда(/^в колонке "(.*?)" таблицы "(.*?)" с "(.*?)" равным "(.*?)" содержится "(.*?)"$/) do |arg1, arg2, arg3, arg4, arg5|
|
197
|
+
t = APP.add_table arg2.to_label.to_sym
|
198
|
+
t.add_column arg1.to_label.to_sym
|
199
|
+
end
|
200
|
+
|
201
|
+
Тогда(/^в колонке "(.*?)" таблицы "(.*?)" с "(.*?)" похожим на "(.*?)" содержится "(.*?)"$/) do |arg1, arg2, arg3, arg4, arg5|
|
202
|
+
t = APP.add_table arg2.to_label.to_sym
|
203
|
+
t.add_column arg1.to_label.to_sym
|
204
|
+
end
|
205
|
+
|