magnesium 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/Gemfile +11 -0
- data/Gemfile.lock +52 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +1 -0
- data/lib/magnesium.rb +62 -0
- data/lib/magnesium/config.xml +16 -0
- data/lib/magnesium/elements/alert.rb +134 -0
- data/lib/magnesium/elements/browser.rb +29 -0
- data/lib/magnesium/elements/button.rb +104 -0
- data/lib/magnesium/elements/checkbox.rb +103 -0
- data/lib/magnesium/elements/div.rb +120 -0
- data/lib/magnesium/elements/frame.rb +121 -0
- data/lib/magnesium/elements/link.rb +105 -0
- data/lib/magnesium/elements/radio.rb +103 -0
- data/lib/magnesium/elements/select_list.rb +103 -0
- data/lib/magnesium/elements/span.rb +116 -0
- data/lib/magnesium/elements/table.rb +121 -0
- data/lib/magnesium/elements/text.rb +109 -0
- data/lib/magnesium/elements/text_field.rb +109 -0
- data/lib/magnesium/extensions/assert.rb +2 -0
- data/lib/magnesium/extensions/feedback.rb +25 -0
- data/lib/magnesium/extensions/http.rb +48 -0
- data/lib/magnesium/extensions/mail.rb +26 -0
- data/lib/magnesium/extensions/scheduler.rb +32 -0
- data/lib/magnesium/extensions/ssh.rb +53 -0
- data/lib/magnesium/extensions/webservice.rb +0 -0
- data/lib/magnesium/factor/test_case.rb +124 -0
- data/lib/magnesium/factor/test_data.rb +32 -0
- data/lib/magnesium/factor/test_result.rb +84 -0
- data/lib/magnesium/factor/test_site.rb +23 -0
- data/lib/magnesium/factor/test_step.rb +31 -0
- data/lib/magnesium/factor/test_ui.rb +55 -0
- data/lib/magnesium/support/config.rb +361 -0
- data/lib/magnesium/support/container.rb +18 -0
- data/lib/magnesium/support/data.rb +11 -0
- data/lib/magnesium/support/error.rb +16 -0
- data/lib/magnesium/support/factory.rb +43 -0
- data/lib/magnesium/support/log.rb +3 -0
- data/lib/magnesium/support/testlink.rb +270 -0
- data/lib/magnesium/support/xml.rb +73 -0
- data/lib/magnesium/version.rb +3 -0
- data/magnesium.gemspec +24 -0
- data/spec/runspec.rb +0 -0
- data/template.yml +57 -0
- metadata +134 -0
@@ -0,0 +1,103 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'watir-webdriver'
|
3
|
+
require File.expand_path("../frame", __FILE__)
|
4
|
+
require File.expand_path("../div", __FILE__)
|
5
|
+
require File.expand_path("../span", __FILE__)
|
6
|
+
require File.expand_path("../table", __FILE__)
|
7
|
+
#require File.expand_path("../../support/error", __FILE__)
|
8
|
+
#require File.expand_path("../../support/config", __FILE__)
|
9
|
+
|
10
|
+
module Magnesium
|
11
|
+
class CheckBox
|
12
|
+
attr_accessor :box
|
13
|
+
attr_accessor :browser
|
14
|
+
|
15
|
+
def element(locate,value)
|
16
|
+
begin
|
17
|
+
if locate == 'id'
|
18
|
+
@e = @browser.checkbox(:id => value.to_s)
|
19
|
+
elsif locate == 'name'
|
20
|
+
@e = @browser.checkbox(:name => value.to_s)
|
21
|
+
elsif locate == 'index'
|
22
|
+
@e = @browser.checkbox(:index => value.to_i)
|
23
|
+
else
|
24
|
+
# nonfun
|
25
|
+
puts '...'
|
26
|
+
end
|
27
|
+
#rescue
|
28
|
+
# error
|
29
|
+
#ensure
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def execute(action,data)
|
34
|
+
begin
|
35
|
+
if action == 'set'
|
36
|
+
if Config.config["wait"]["isstart"] == "true"
|
37
|
+
return @e.when_present(Config.config["wait"]["value"].to_i).set data.to_s
|
38
|
+
elsif Config.config["wait"]["isstart"] == "false"
|
39
|
+
return @e.set data.to_s
|
40
|
+
else
|
41
|
+
# error
|
42
|
+
puts '...'
|
43
|
+
end
|
44
|
+
elsif action == 'exists'
|
45
|
+
if Config.config["wait"]["isstart"] == "true"
|
46
|
+
return @e.when_present(Config.config["wait"]["value"].to_i).exists?
|
47
|
+
elsif Config.config["wait"]["isstart"] == "false"
|
48
|
+
return @e.exists?
|
49
|
+
else
|
50
|
+
# error
|
51
|
+
puts '...'
|
52
|
+
end
|
53
|
+
elsif action == 'wait_until_present'
|
54
|
+
return @e.wait_until_present
|
55
|
+
elsif action == 'wait_while_present'
|
56
|
+
return @e.wait_while_present
|
57
|
+
else
|
58
|
+
# nonfun
|
59
|
+
puts '...'
|
60
|
+
end
|
61
|
+
#rescue
|
62
|
+
# error
|
63
|
+
#ensure
|
64
|
+
end
|
65
|
+
end
|
66
|
+
=begin
|
67
|
+
def setbox(box)
|
68
|
+
@box = box
|
69
|
+
end
|
70
|
+
|
71
|
+
def getbox()
|
72
|
+
return @box
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
def setbrowser(browser)
|
77
|
+
@browser = browser
|
78
|
+
end
|
79
|
+
|
80
|
+
def getbrowser()
|
81
|
+
return @browser
|
82
|
+
end
|
83
|
+
=end
|
84
|
+
def generate()
|
85
|
+
unless @box.empty?
|
86
|
+
@box.collect do |f|
|
87
|
+
if f["name"] == 'frame'
|
88
|
+
@browser = Frame.dealframe(@browser,f["locate",],f["value"])
|
89
|
+
elsif f["name"] == 'div'
|
90
|
+
@browser = Div.dealdiv(@browser,f["locate"],f["value"])
|
91
|
+
elsif f["name"] == 'span'
|
92
|
+
@browser = Span.dealspan(@browser,f["locate"],f["value"])
|
93
|
+
elsif f["name"] == 'table'
|
94
|
+
@browser = Table.dealtable(@browser,f["locate"],f["value"])
|
95
|
+
else
|
96
|
+
# nonfun
|
97
|
+
puts '...'
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'watir-webdriver'
|
3
|
+
require File.expand_path("../frame", __FILE__)
|
4
|
+
require File.expand_path("../table", __FILE__)
|
5
|
+
require File.expand_path("../span", __FILE__)
|
6
|
+
#require File.expand_path("../../support/error", __FILE__)
|
7
|
+
#require File.expand_path("../../support/config", __FILE__)
|
8
|
+
|
9
|
+
module Magnesium
|
10
|
+
class Div
|
11
|
+
attr_accessor :box
|
12
|
+
attr_accessor :browser
|
13
|
+
|
14
|
+
def self.dealdiv(browser,locate,value)
|
15
|
+
begin
|
16
|
+
if locate == 'id'
|
17
|
+
return browser.div(:id => value.to_s)
|
18
|
+
elsif locate == 'name'
|
19
|
+
return browser.div(:name => value.to_s)
|
20
|
+
elsif locate == 'index'
|
21
|
+
return browser.div(:index => value.to_i)
|
22
|
+
else
|
23
|
+
#nonfun
|
24
|
+
puts 'M: I need time to grow up.'
|
25
|
+
end
|
26
|
+
#rescue
|
27
|
+
# error
|
28
|
+
#ensure
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def element(locate,value)
|
33
|
+
begin
|
34
|
+
if locate == 'id'
|
35
|
+
@e = @browser.div(:id => value.to_s)
|
36
|
+
elsif locate == 'name'
|
37
|
+
@e = @browser.div(:name => value.to_s)
|
38
|
+
elsif locate == 'index'
|
39
|
+
@e = @browser.div(:index => value.to_s)
|
40
|
+
else
|
41
|
+
# nonfun
|
42
|
+
puts '...'
|
43
|
+
end
|
44
|
+
#rescue
|
45
|
+
#error
|
46
|
+
#ensure
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def execute(action,data)
|
51
|
+
begin
|
52
|
+
if action == 'send_keys'
|
53
|
+
if Config.config["wait"]["isstart"] == "true"
|
54
|
+
return @e.when_present(Config.config["wait"]["isstart"].to_i).send_keys data.to_s
|
55
|
+
elsif Config.config["wait"]["isstart"] = "false"
|
56
|
+
return @e.send_keys data.to_s
|
57
|
+
else
|
58
|
+
#error
|
59
|
+
puts '...'
|
60
|
+
end
|
61
|
+
elsif action == 'exists'
|
62
|
+
if Config.config["wait"]["isstart"] == "true"
|
63
|
+
return @e.when_present(Config.config["wait"]["isstart"].to_i).exists?
|
64
|
+
elsif Config.config["wait"]["isstart"] = "false"
|
65
|
+
return @e.exists?
|
66
|
+
else
|
67
|
+
#error
|
68
|
+
puts '...'
|
69
|
+
end
|
70
|
+
elsif action == 'wait_until_present'
|
71
|
+
return @e.wait_until_present
|
72
|
+
elsif action == 'wait_while_present'
|
73
|
+
return @e.wait_while_present
|
74
|
+
else
|
75
|
+
# error
|
76
|
+
puts 'M: I am sorry about the error.'
|
77
|
+
end
|
78
|
+
#rescue
|
79
|
+
# error
|
80
|
+
#ensure
|
81
|
+
end
|
82
|
+
end
|
83
|
+
=begin
|
84
|
+
def setbrowser(browser)
|
85
|
+
@browser = browser
|
86
|
+
end
|
87
|
+
|
88
|
+
def getbrowser()
|
89
|
+
return @browser
|
90
|
+
end
|
91
|
+
|
92
|
+
def setbox(box)
|
93
|
+
@box = box
|
94
|
+
end
|
95
|
+
|
96
|
+
def getbox()
|
97
|
+
return @box
|
98
|
+
end
|
99
|
+
=end
|
100
|
+
|
101
|
+
def generate()
|
102
|
+
unless @box.empty?
|
103
|
+
@box.collect do |f|
|
104
|
+
if f["name"] == 'frame'
|
105
|
+
@browser = Frame.dealframe(@browser,f["locate",],f["value"])
|
106
|
+
elsif f["name"] == 'div'
|
107
|
+
@browser = Div.dealdiv(@browser,f["locate"],f["value"])
|
108
|
+
elsif f["name"] == 'span'
|
109
|
+
@browser = Span.dealspan(@browser,f["locate"],f["value"])
|
110
|
+
elsif f["name"] == 'table'
|
111
|
+
@browser = Table.dealtable(@browser,f["locate"],f["value"])
|
112
|
+
else
|
113
|
+
#nonfun
|
114
|
+
puts '...'
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'watir-webdriver'
|
3
|
+
require File.expand_path("../span", __FILE__)
|
4
|
+
require File.expand_path("../div", __FILE__)
|
5
|
+
require File.expand_path("../table", __FILE__)
|
6
|
+
#require File.expand_path("../../support/error", __FILE__)
|
7
|
+
#require File.expand_path("../../support/config", __FILE__)
|
8
|
+
|
9
|
+
module Magnesium
|
10
|
+
class Frame
|
11
|
+
attr_accessor :box
|
12
|
+
attr_accessor :browser
|
13
|
+
|
14
|
+
def self.dealframe(browser,locate,value)
|
15
|
+
begin
|
16
|
+
if locate == 'id'
|
17
|
+
return browser.frame(:id => value.to_s)
|
18
|
+
elsif locate == 'name'
|
19
|
+
return browser.frame(:name => value.to_s)
|
20
|
+
elsif locate == 'index'
|
21
|
+
return browser.frame(:index => value.to_i)
|
22
|
+
else
|
23
|
+
#nonfun
|
24
|
+
puts '...'
|
25
|
+
end
|
26
|
+
#rescue
|
27
|
+
# error
|
28
|
+
#ensure
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def element(locate,value)
|
33
|
+
begin
|
34
|
+
if locate == 'id'
|
35
|
+
@e = @browser.frame(:id => value.to_s)
|
36
|
+
elsif locate == 'name'
|
37
|
+
@e = @browser.frame(:name => value.to_s)
|
38
|
+
elsif locate == 'index'
|
39
|
+
@e = @browser.frame(:index => value.to_s)
|
40
|
+
else
|
41
|
+
# nonfun
|
42
|
+
puts '...'
|
43
|
+
end
|
44
|
+
# rescue
|
45
|
+
# error
|
46
|
+
#ensure
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def execute(action,data)
|
51
|
+
begin
|
52
|
+
if action == 'send_keys'
|
53
|
+
if Config.config["wait"]["isstart"] == "true"
|
54
|
+
return @e.when_present(Config.config["wait"]["value"].to_i).send_keys data.to_s
|
55
|
+
elsif Config.config["wait"]["isstart"] == "false"
|
56
|
+
return @e.send_keys data.to_s
|
57
|
+
else
|
58
|
+
# error
|
59
|
+
puts '...'
|
60
|
+
end
|
61
|
+
elsif action == 'exists'
|
62
|
+
if Config.config["wait"]["isstart"] == "true"
|
63
|
+
return @e.when_present(Config.config["wait"]["value"].to_i).exists?
|
64
|
+
elsif Config.config["wait"]["isstart"] == "false"
|
65
|
+
return @e.exists?
|
66
|
+
else
|
67
|
+
#error
|
68
|
+
puts '...'
|
69
|
+
end
|
70
|
+
elsif action == 'wait_until_present'
|
71
|
+
return @e.wait_until_present
|
72
|
+
elsif action == 'wait_while_present'
|
73
|
+
return @e.wait_while_present
|
74
|
+
else
|
75
|
+
#error
|
76
|
+
puts '...'
|
77
|
+
#puts 'M: I am sorry about the error.'
|
78
|
+
end
|
79
|
+
# rescue
|
80
|
+
# error
|
81
|
+
#ensure
|
82
|
+
end
|
83
|
+
end
|
84
|
+
=begin
|
85
|
+
def setbrowser(browser)
|
86
|
+
@browser = browser
|
87
|
+
end
|
88
|
+
|
89
|
+
def getbrowser()
|
90
|
+
return @browser
|
91
|
+
end
|
92
|
+
|
93
|
+
def setbox(box)
|
94
|
+
@box = box
|
95
|
+
end
|
96
|
+
|
97
|
+
def getbox()
|
98
|
+
return @box
|
99
|
+
end
|
100
|
+
=end
|
101
|
+
|
102
|
+
def generate()
|
103
|
+
unless @box.empty?
|
104
|
+
@box.collect do |f|
|
105
|
+
if f["name"] == 'frame'
|
106
|
+
@browser = Frame.dealframe(@browser,f["locate",],f["value"])
|
107
|
+
elsif f["name"] == 'div'
|
108
|
+
@browser = Div.dealdiv(@browser,f["locate"],f["value"])
|
109
|
+
elsif f["name"] == 'span'
|
110
|
+
@browser = Span.dealspan(@browser,f["locate"],f["value"])
|
111
|
+
elsif f["name"] == 'table'
|
112
|
+
@browser = Table.dealtable(@browser,f["locate"],f["value"])
|
113
|
+
else
|
114
|
+
# nonfun
|
115
|
+
puts '...'
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'watir-webdriver'
|
3
|
+
require File.expand_path("../frame", __FILE__)
|
4
|
+
require File.expand_path("../div", __FILE__)
|
5
|
+
require File.expand_path("../span", __FILE__)
|
6
|
+
require File.expand_path("../table", __FILE__)
|
7
|
+
#require File.expand_path("../../support/error", __FILE__)
|
8
|
+
#require File.expand_path("../../support/config",__FILE__)
|
9
|
+
|
10
|
+
module Magnesium
|
11
|
+
class Link
|
12
|
+
attr_accessor :box
|
13
|
+
attr_accessor :browser
|
14
|
+
|
15
|
+
def element(locate,value)
|
16
|
+
begin
|
17
|
+
if locate == 'id'
|
18
|
+
@e = @browser.link(:id => value.to_s)
|
19
|
+
elsif locate == 'name'
|
20
|
+
@e = @browser.link(:name => value.to_s)
|
21
|
+
elsif locate == 'index'
|
22
|
+
@e = @browser.link(:index => value.to_i)
|
23
|
+
elsif locate == 'text'
|
24
|
+
@e = @browser.link(:text => value.to_s)
|
25
|
+
else
|
26
|
+
# nonfun
|
27
|
+
puts 'M: I need time to grow up.'
|
28
|
+
end
|
29
|
+
#rescue
|
30
|
+
# error
|
31
|
+
#ensure
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def execute(action,data)
|
36
|
+
begin
|
37
|
+
if action == 'click'
|
38
|
+
if Config.config["wait"]["isstart"] == "true"
|
39
|
+
return @e.when_present(Config.config["wait"]["value"].to_i).click
|
40
|
+
elsif Config.config["wait"]["isstart"] == "false"
|
41
|
+
return @e.click
|
42
|
+
else
|
43
|
+
# error
|
44
|
+
puts '...'
|
45
|
+
end
|
46
|
+
elsif action == 'exists'
|
47
|
+
if Config.config["wait"]["isstart"] == "true"
|
48
|
+
return @e.when_present(Config.config["wait"]["value"].to_i).exists?
|
49
|
+
elsif Config.config["wait"]["isstart"] == "false"
|
50
|
+
return @e.exists?
|
51
|
+
else
|
52
|
+
#error
|
53
|
+
puts '...'
|
54
|
+
end
|
55
|
+
elsif action == 'wait_until_present'
|
56
|
+
return @e.wait_until_present
|
57
|
+
elsif action == 'wait_while_present'
|
58
|
+
return @e.wait_while_present
|
59
|
+
else
|
60
|
+
#nonfun
|
61
|
+
puts 'M: I need time to grow up.'
|
62
|
+
end
|
63
|
+
#rescue
|
64
|
+
# error
|
65
|
+
#ensure
|
66
|
+
end
|
67
|
+
end
|
68
|
+
=begin
|
69
|
+
def setbox(box)
|
70
|
+
@box = box
|
71
|
+
end
|
72
|
+
|
73
|
+
def getbox()
|
74
|
+
return @box
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
def setbrowser(browser)
|
79
|
+
@browser = browser
|
80
|
+
end
|
81
|
+
|
82
|
+
def getbrowser()
|
83
|
+
return @browser
|
84
|
+
end
|
85
|
+
=end
|
86
|
+
def generate()
|
87
|
+
unless @box.empty?
|
88
|
+
@box.collect do |f|
|
89
|
+
if f["name"] == 'frame'
|
90
|
+
@browser = Frame.dealframe(@browser,f["locate",],f["value"])
|
91
|
+
elsif f["name"] == 'div'
|
92
|
+
@browser = Div.dealdiv(@browser,f["locate"],f["value"])
|
93
|
+
elsif f["name"] == 'span'
|
94
|
+
@browser = Span.dealspan(@browser,f["locate"],f["value"])
|
95
|
+
elsif f["name"] == 'table'
|
96
|
+
@browser = Table.dealtable(@browser,f["locate"],f["value"])
|
97
|
+
else
|
98
|
+
# nonfun
|
99
|
+
puts '...'
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|