cutara 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|