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