selenium-framework 0.0.4 → 0.0.5

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.
@@ -1,10 +1,10 @@
1
- source 'http://gemcutter.org'
2
- source 'http://gems.rubyforge.org'
3
- source 'http://rubygems.org'
4
- gem 'selenium-webdriver'
5
- gem 'mail'
6
- gem 'faker'
7
- gem 'nokogiri'
8
- gem 'selenium-client'
9
- gem 'headless'
10
-
1
+ source 'http://gemcutter.org'
2
+ source 'http://gems.rubyforge.org'
3
+ source 'http://rubygems.org'
4
+ gem 'selenium-webdriver'
5
+ gem 'mail'
6
+ gem 'faker'
7
+ gem 'nokogiri'
8
+ gem 'selenium-client'
9
+ gem 'headless'
10
+
@@ -1,12 +1,12 @@
1
- require 'selenium-framework'
2
- require 'selenium-webdriver'
3
- require 'test/unit'
4
- require 'date'
5
- require 'csv'
6
- require 'faker'
7
- require 'mail'
8
- require 'open-uri'
9
- require 'nokogiri'
10
- require 'uri'
11
- require 'headless'
12
-
1
+ require 'selenium-framework'
2
+ require 'selenium-webdriver'
3
+ require 'test/unit'
4
+ require 'date'
5
+ require 'csv'
6
+ require 'faker'
7
+ require 'mail'
8
+ require 'open-uri'
9
+ require 'nokogiri'
10
+ require 'uri'
11
+ require 'headless'
12
+
@@ -1,25 +1,25 @@
1
- require './include.rb'
2
-
3
- class Project < Test::Unit::TestCase
4
-
5
- def setup
6
- client = Selenium::WebDriver::Remote::Http::Default.new
7
- client.timeout = 120 # seconds
8
- $driver = Selenium::WebDriver.for(:remote, :http_client => client, :url => 'http://<IP ADDRESS>:<PORT NUMBER>/wd/hub', :desired_capabilities => ':firefox')
9
- $base_url = 'http://<WEBSITE URL>'
10
- $driver.manage.timeouts.implicit_wait = 180
11
- @verification_errors = []
12
- end
13
-
14
- def teardown
15
- $driver.quit
16
- assert_equal [],@verification_errors
17
- end
18
-
19
- def verify(&blk)
20
- yield
21
- rescue Test::Unit::AssertionFailedError => ex
22
- @verification_errors << ex
23
- end
24
-
1
+ require './include.rb'
2
+
3
+ class Project < Test::Unit::TestCase
4
+
5
+ def setup
6
+ client = Selenium::WebDriver::Remote::Http::Default.new
7
+ client.timeout = 120 # seconds
8
+ $driver = Selenium::WebDriver.for(:remote, :http_client => client, :url => 'http://<IP ADDRESS>:<PORT NUMBER>/wd/hub', :desired_capabilities => ':firefox')
9
+ $base_url = 'http://<WEBSITE URL>'
10
+ $driver.manage.timeouts.implicit_wait = 180
11
+ @verification_errors = []
12
+ end
13
+
14
+ def teardown
15
+ $driver.quit
16
+ assert_equal [],@verification_errors
17
+ end
18
+
19
+ def verify(&blk)
20
+ yield
21
+ rescue Test::Unit::AssertionFailedError => ex
22
+ @verification_errors << ex
23
+ end
24
+
25
25
  end
data/bin/framework CHANGED
@@ -1,297 +1,297 @@
1
- #!/usr/bin/env ruby
2
- require 'fileutils'
3
- require 'readline'
4
-
5
-
6
- def print_path(filename, filepath, project_directory_path)
7
- path = filepath +"/"+ filename
8
- path = path.to_s
9
- puts "create " + path.split(project_directory_path.to_s)[1].to_s
10
- end
11
-
12
- def create_dir(dirname, directory_path, project_directory_path)
13
- Dir.chdir(directory_path)
14
- unless (File.exists?(dirname))
15
- Dir.mkdir(dirname)
16
- print_path(dirname, directory_path, project_directory_path)
17
- end
18
- Dir.chdir(directory_path + "/" + dirname)
19
- unless (File.exists?(".gitignore"))
20
- FileUtils.touch ".gitignore"
21
- print_path(".gitignore", directory_path + "/" + dirname, project_directory_path)
22
- end
23
- Dir.chdir(directory_path)
24
- end
25
-
26
- def help_text
27
- puts "Usage: \n\tframework new <PROJECT_PATH> [options] \n\tframework update <PROJECT_PATH> [options]\n\nFramework options: \n\t-h, [--help]\t# Show this help message and quit\n\nRuntime options: \n\t-f, [--force]\t# Overwrite files that already exist"
28
- exit
29
- end
30
-
31
-
32
- if ARGV[0] == nil || ARGV[1] == nil || (ARGV[0] !='new' && ARGV[0] !='update' ) || ARGV[0] == '-h' || ARGV[0] == '--help'
33
- help_text
34
- end
35
- force_flag = 0
36
- if ARGV.length == 3
37
- if ARGV[2] == '-f' || ARGV[2] == '--force'
38
- exist_flag = 1
39
- force_flag = 1
40
- else
41
- help_text
42
- end
43
- end
44
-
45
- update_flag = 0
46
- if ARGV[0] == 'update'
47
- if ARGV.length == 2 && ARGV[1] != nil
48
- update_flag = 1
49
- else
50
- help_text
51
- end
52
- end
53
-
54
-
55
-
56
- project_name = ARGV[1]
57
- project_directory_path = Dir.pwd
58
- puts "\n"
59
-
60
- exist_flag = 1
61
- if ("true".casecmp(File.directory?(project_directory_path +"/"+ project_name).to_s)) == 0 && exist_flag == 1 && force_flag == 0 && update_flag == 0
62
- puts "Project exist !!! What do you want to do? \n1. Overwrite the project\n2. Take backup and create new project\n3. Create project in existing directory\n4. Exit :\n\n"
63
- exist_flag = Readline.readline(":", true)
64
- exist_flag = exist_flag.to_i
65
- else
66
-
67
-
68
- end
69
-
70
- if exist_flag == 1 && update_flag == 0
71
- if File.exists?(project_name)
72
- FileUtils.rm_r(project_name)
73
- puts "Deleted the previous project...\n\n"
74
- end
75
- puts "Creating new project as #{project_name}..."
76
- create_dir(project_name, project_directory_path, project_directory_path)
77
- Dir.chdir(project_directory_path + "/" + project_name)
78
-
79
- project_main_file = project_name + ".rb"
80
- FileUtils.touch project_main_file
81
- source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/project_file.rb"
82
- destination = project_directory_path + "/" + project_name + "/" + project_main_file
83
- FileUtils.copy_file(source,destination)
84
- outdata = File.read(destination).gsub("Project", project_name.capitalize)
85
- File.open(destination, 'w') do |out|
86
- out << outdata
87
- end
88
- print_path(project_main_file, project_directory_path + "/" + project_name, project_directory_path)
89
-
90
- FileUtils.touch "include.rb"
91
- source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/include.rb"
92
- destination = project_directory_path + "/" + project_name + "/include.rb"
93
- FileUtils.copy_file(source,destination)
94
- print_path("include.rb", project_directory_path + "/" + project_name, project_directory_path)
95
-
96
- FileUtils.touch "Gemfile"
97
- source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/Gemfile"
98
- destination = project_directory_path + "/" + project_name + "/Gemfile"
99
- FileUtils.copy_file(source,destination)
100
- print_path("Gemfile", project_directory_path + "/" + project_name, project_directory_path)
101
-
102
- Dir.chdir(project_directory_path)
103
- # internal_dir -- array for storing framework directory names
104
- internal_dir = ["libraries", "testcases", "logs", "reports", "screenshots"]
105
- directory_path = project_directory_path + "/" + project_name
106
- # dir_counter -- iterator for the loop
107
- for dir_counter in 0..internal_dir.length-1
108
- create_dir(internal_dir[dir_counter], directory_path, project_directory_path)
109
- end
110
- puts "\nFramework for #{project_name} is created..."
111
- puts "\nbundle install"
112
- Dir.chdir(project_directory_path + "/" + project_name)
113
- system("bundle install")
114
- Dir.chdir(project_directory_path)
115
- end
116
-
117
- if exist_flag == 2
118
- timestamp = Time.now
119
- timestamp = timestamp.strftime("%d-%m-%Y-%H-%M-%S")
120
- timestamp = timestamp.to_s
121
- old_prject_name = project_name
122
- new_project_name = project_name+'_'+timestamp
123
- File.rename(old_prject_name, new_project_name)
124
- puts "\n#{old_prject_name} HAS BEEN MOVED TO #{new_project_name} \n\n"
125
- puts "Creating new project as #{project_name}..."
126
- create_dir(project_name, project_directory_path, project_directory_path)
127
- Dir.chdir(project_directory_path + "/" + project_name)
128
-
129
- project_main_file = project_name + ".rb"
130
- FileUtils.touch project_main_file
131
- source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/project_file.rb"
132
- destination = project_directory_path + "/" + project_name + "/" + project_main_file
133
- FileUtils.copy_file(source,destination)
134
- outdata = File.read(destination).gsub("Project", project_name.capitalize)
135
- File.open(destination, 'w') do |out|
136
- out << outdata
137
- end
138
- print_path(project_main_file, project_directory_path + "/" + project_name, project_directory_path)
139
-
140
- FileUtils.touch "include.rb"
141
- source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/include.rb"
142
- destination = project_directory_path + "/" + project_name + "/include.rb"
143
- FileUtils.copy_file(source,destination)
144
- print_path("include.rb", project_directory_path + "/" + project_name, project_directory_path)
145
-
146
- FileUtils.touch "Gemfile"
147
- source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/Gemfile"
148
- destination = project_directory_path + "/" + project_name + "/Gemfile"
149
- FileUtils.copy_file(source,destination)
150
- print_path("Gemfile", project_directory_path + "/" + project_name, project_directory_path)
151
-
152
- Dir.chdir(project_directory_path)
153
- # internal_dir -- array for storing framework directory names
154
- internal_dir = ["libraries", "testcases", "logs", "reports", "screenshots"]
155
- directory_path = project_directory_path + "/" + project_name
156
- # dir_counter -- iterator for the loop
157
- for dir_counter in 0..internal_dir.length-1
158
- create_dir(internal_dir[dir_counter], directory_path, project_directory_path)
159
- end
160
- puts "\nFramework for #{project_name} is created..."
161
- puts "\nbundle install"
162
- Dir.chdir(project_directory_path + "/" + project_name)
163
- system("bundle install")
164
- Dir.chdir(project_directory_path)
165
- end
166
-
167
- if exist_flag == 3
168
- puts "\nThe framework will be created in existing directory. Do you want to continue? Enter y/yes to continue."
169
- confirm_flag = Readline.readline(":", true)
170
- confirm_flag = confirm_flag.to_s.upcase
171
- if ("Y".casecmp confirm_flag) == 0 || ("YES".casecmp confirm_flag) == 0
172
- Dir.chdir(project_directory_path + "/" + project_name)
173
- project_main_file = project_name + ".rb"
174
- unless (File.exists?(project_main_file))
175
- FileUtils.touch project_main_file
176
- source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/project_file.rb"
177
- destination = project_directory_path + "/" + project_name + "/" + project_main_file
178
- FileUtils.copy_file(source,destination)
179
- outdata = File.read(destination).gsub("Project", project_name.capitalize)
180
- File.open(destination, 'w') do |out|
181
- out << outdata
182
- end
183
- print_path(project_main_file, project_directory_path + "/" + project_name, project_directory_path)
184
- end
185
- unless (File.exists?("include.rb"))
186
- FileUtils.touch "include.rb"
187
- source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/include.rb"
188
- destination = project_directory_path + "/" + project_name + "/include.rb"
189
- FileUtils.copy_file(source,destination)
190
- print_path("include.rb", project_directory_path + "/" + project_name, project_directory_path)
191
- end
192
- unless (File.exists?("Gemfile"))
193
- FileUtils.touch "Gemfile"
194
- source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/Gemfile"
195
- destination = project_directory_path + "/" + project_name + "/Gemfile"
196
- FileUtils.copy_file(source,destination)
197
- print_path("Gemfile", project_directory_path + "/" + project_name, project_directory_path)
198
- end
199
-
200
- Dir.chdir(project_directory_path)
201
- # internal_dir -- array for storing framework directory names
202
- internal_dir = ["libraries", "testcases", "logs", "reports", "screenshots"]
203
- directory_path = project_directory_path + "/" + project_name
204
- # dir_counter -- iterator for the loop
205
- for dir_counter in 0..internal_dir.length-1
206
- create_dir(internal_dir[dir_counter], directory_path, project_directory_path)
207
- end
208
- puts "\nFramework for #{project_name} is created..."
209
- puts "\nbundle install"
210
- Dir.chdir(project_directory_path + "/" + project_name)
211
- system("bundle install")
212
- Dir.chdir(project_directory_path)
213
- else
214
- puts "Not continuing. Exiting creation of framework..."
215
- exit
216
- end
217
- end
218
-
219
- if exist_flag == 4
220
- puts "Project exist !!! So exiting..."
221
- exit
222
- end
223
-
224
- if update_flag ==1
225
- unless File.exists?(project_name)
226
- puts "\n#{project_name} does not exist in current location...\nSo exiting ..."
227
- exit
228
- end
229
- Dir.chdir(project_directory_path + "/" + project_name)
230
- source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/include.rb"
231
- destination = "include.rb"
232
- compare_result_1 = FileUtils.compare_file(source, destination).to_s
233
- source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/Gemfile"
234
- destination = "Gemfile"
235
- compare_result_2 = FileUtils.compare_file(source, destination).to_s
236
-
237
- if ("true".casecmp compare_result_1) == 0 && ("true".casecmp compare_result_2) == 0
238
- puts "\nFramework for #{project_name} is already updated..."
239
- puts "\nbundle install"
240
- Dir.chdir(project_directory_path + "/" + project_name)
241
- system("bundle install")
242
- Dir.chdir(project_directory_path)
243
- exit
244
- else
245
- puts "\nFramework for #{project_name} needs to be updated..."
246
- source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/include.rb"
247
- destination = "include.rb"
248
- source_data = Array.new
249
- source_data = IO.readlines(source)
250
- destination_data = Array.new
251
- destination_data = IO.readlines(destination)
252
- source_data.each do |thing|
253
- present_flag = destination_data.include? thing
254
- present_flag = present_flag.to_s
255
- if ("false".casecmp present_flag) == 0
256
- #File.open(destination, 'a+') { |file| file.write(thing.to_s) }
257
- f = File.open(destination, "r+")
258
- lines = f.readlines
259
- f.close
260
- lines = [thing] + lines
261
- output = File.new(destination, "w")
262
- lines.each { |line| output.write line }
263
- output.close
264
- end
265
- end
266
- print_path("include.rb", project_directory_path + "/" + project_name, project_directory_path)
267
-
268
- source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/Gemfile"
269
- destination = "Gemfile"
270
- source_data = Array.new
271
- source_data = IO.readlines(source)
272
- destination_data = Array.new
273
- destination_data = IO.readlines(destination)
274
- source_data.each do |thing|
275
- present_flag = destination_data.include? thing
276
- present_flag = present_flag.to_s
277
- if ("false".casecmp present_flag) == 0
278
- #File.open(destination, 'a+') { |file| file.write(thing.to_s) }
279
- f = File.open(destination, "r+")
280
- lines = f.readlines
281
- f.close
282
- lines = [thing] + lines
283
- output = File.new(destination, "w")
284
- lines.each { |line| output.write line }
285
- output.close
286
- end
287
- end
288
- print_path("Gemfile", project_directory_path + "/" + project_name, project_directory_path)
289
-
290
- puts "\nFramework for #{project_name} is updated..."
291
- puts "\nbundle install"
292
- Dir.chdir(project_directory_path + "/" + project_name)
293
- system("bundle install")
294
- Dir.chdir(project_directory_path)
295
- end
296
- end
297
-
1
+ #!/usr/bin/env ruby
2
+ require 'fileutils'
3
+ require 'readline'
4
+
5
+
6
+ def print_path(filename, filepath, project_directory_path)
7
+ path = filepath +"/"+ filename
8
+ path = path.to_s
9
+ puts "create " + path.split(project_directory_path.to_s)[1].to_s
10
+ end
11
+
12
+ def create_dir(dirname, directory_path, project_directory_path)
13
+ Dir.chdir(directory_path)
14
+ unless (File.exists?(dirname))
15
+ Dir.mkdir(dirname)
16
+ print_path(dirname, directory_path, project_directory_path)
17
+ end
18
+ Dir.chdir(directory_path + "/" + dirname)
19
+ unless (File.exists?(".gitignore"))
20
+ FileUtils.touch ".gitignore"
21
+ print_path(".gitignore", directory_path + "/" + dirname, project_directory_path)
22
+ end
23
+ Dir.chdir(directory_path)
24
+ end
25
+
26
+ def help_text
27
+ puts "Usage: \n\tframework new <PROJECT_PATH> [options] \n\tframework update <PROJECT_PATH> \n\nFramework options: \n\t-h, [--help]\t# Show this help message and quit\n\nRuntime options: \n\t-f, [--force]\t# Overwrite files that already exist"
28
+ exit
29
+ end
30
+
31
+
32
+ if ARGV[0] == nil || ARGV[1] == nil || (ARGV[0] !='new' && ARGV[0] !='update' ) || ARGV[0] == '-h' || ARGV[0] == '--help'
33
+ help_text
34
+ end
35
+ force_flag = 0
36
+ if ARGV.length == 3
37
+ if ARGV[2] == '-f' || ARGV[2] == '--force'
38
+ exist_flag = 1
39
+ force_flag = 1
40
+ else
41
+ help_text
42
+ end
43
+ end
44
+
45
+ update_flag = 0
46
+ if ARGV[0] == 'update'
47
+ if ARGV.length == 2 && ARGV[1] != nil
48
+ update_flag = 1
49
+ else
50
+ help_text
51
+ end
52
+ end
53
+
54
+
55
+
56
+ project_name = ARGV[1]
57
+ project_directory_path = Dir.pwd
58
+ puts "\n"
59
+
60
+ exist_flag = 1
61
+ if ("true".casecmp(File.directory?(project_directory_path +"/"+ project_name).to_s)) == 0 && exist_flag == 1 && force_flag == 0 && update_flag == 0
62
+ puts "Project exist !!! What do you want to do? \n1. Overwrite the project\n2. Take backup and create new project\n3. Create project in existing directory\n4. Exit :\n\n"
63
+ exist_flag = Readline.readline(":", true)
64
+ exist_flag = exist_flag.to_i
65
+ else
66
+
67
+
68
+ end
69
+
70
+ if exist_flag == 1 && update_flag == 0
71
+ if File.exists?(project_name)
72
+ FileUtils.rm_r(project_name)
73
+ puts "Deleted the previous project...\n\n"
74
+ end
75
+ puts "Creating new project as #{project_name}..."
76
+ create_dir(project_name, project_directory_path, project_directory_path)
77
+ Dir.chdir(project_directory_path + "/" + project_name)
78
+
79
+ project_main_file = project_name + ".rb"
80
+ FileUtils.touch project_main_file
81
+ source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/project_file.rb"
82
+ destination = project_directory_path + "/" + project_name + "/" + project_main_file
83
+ FileUtils.copy_file(source,destination)
84
+ outdata = File.read(destination).gsub("Project", project_name.capitalize)
85
+ File.open(destination, 'w') do |out|
86
+ out << outdata
87
+ end
88
+ print_path(project_main_file, project_directory_path + "/" + project_name, project_directory_path)
89
+
90
+ FileUtils.touch "include.rb"
91
+ source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/include.rb"
92
+ destination = project_directory_path + "/" + project_name + "/include.rb"
93
+ FileUtils.copy_file(source,destination)
94
+ print_path("include.rb", project_directory_path + "/" + project_name, project_directory_path)
95
+
96
+ FileUtils.touch "Gemfile"
97
+ source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/Gemfile"
98
+ destination = project_directory_path + "/" + project_name + "/Gemfile"
99
+ FileUtils.copy_file(source,destination)
100
+ print_path("Gemfile", project_directory_path + "/" + project_name, project_directory_path)
101
+
102
+ Dir.chdir(project_directory_path)
103
+ # internal_dir -- array for storing framework directory names
104
+ internal_dir = ["libraries", "testcases", "logs", "reports", "screenshots"]
105
+ directory_path = project_directory_path + "/" + project_name
106
+ # dir_counter -- iterator for the loop
107
+ for dir_counter in 0..internal_dir.length-1
108
+ create_dir(internal_dir[dir_counter], directory_path, project_directory_path)
109
+ end
110
+ puts "\nFramework for #{project_name} is created..."
111
+ puts "\nbundle install"
112
+ Dir.chdir(project_directory_path + "/" + project_name)
113
+ system("bundle install")
114
+ Dir.chdir(project_directory_path)
115
+ end
116
+
117
+ if exist_flag == 2
118
+ timestamp = Time.now
119
+ timestamp = timestamp.strftime("%d-%m-%Y-%H-%M-%S")
120
+ timestamp = timestamp.to_s
121
+ old_prject_name = project_name
122
+ new_project_name = project_name+'_'+timestamp
123
+ File.rename(old_prject_name, new_project_name)
124
+ puts "\n#{old_prject_name} HAS BEEN MOVED TO #{new_project_name} \n\n"
125
+ puts "Creating new project as #{project_name}..."
126
+ create_dir(project_name, project_directory_path, project_directory_path)
127
+ Dir.chdir(project_directory_path + "/" + project_name)
128
+
129
+ project_main_file = project_name + ".rb"
130
+ FileUtils.touch project_main_file
131
+ source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/project_file.rb"
132
+ destination = project_directory_path + "/" + project_name + "/" + project_main_file
133
+ FileUtils.copy_file(source,destination)
134
+ outdata = File.read(destination).gsub("Project", project_name.capitalize)
135
+ File.open(destination, 'w') do |out|
136
+ out << outdata
137
+ end
138
+ print_path(project_main_file, project_directory_path + "/" + project_name, project_directory_path)
139
+
140
+ FileUtils.touch "include.rb"
141
+ source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/include.rb"
142
+ destination = project_directory_path + "/" + project_name + "/include.rb"
143
+ FileUtils.copy_file(source,destination)
144
+ print_path("include.rb", project_directory_path + "/" + project_name, project_directory_path)
145
+
146
+ FileUtils.touch "Gemfile"
147
+ source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/Gemfile"
148
+ destination = project_directory_path + "/" + project_name + "/Gemfile"
149
+ FileUtils.copy_file(source,destination)
150
+ print_path("Gemfile", project_directory_path + "/" + project_name, project_directory_path)
151
+
152
+ Dir.chdir(project_directory_path)
153
+ # internal_dir -- array for storing framework directory names
154
+ internal_dir = ["libraries", "testcases", "logs", "reports", "screenshots"]
155
+ directory_path = project_directory_path + "/" + project_name
156
+ # dir_counter -- iterator for the loop
157
+ for dir_counter in 0..internal_dir.length-1
158
+ create_dir(internal_dir[dir_counter], directory_path, project_directory_path)
159
+ end
160
+ puts "\nFramework for #{project_name} is created..."
161
+ puts "\nbundle install"
162
+ Dir.chdir(project_directory_path + "/" + project_name)
163
+ system("bundle install")
164
+ Dir.chdir(project_directory_path)
165
+ end
166
+
167
+ if exist_flag == 3
168
+ puts "\nThe framework will be created in existing directory. Do you want to continue? Enter y/yes to continue."
169
+ confirm_flag = Readline.readline(":", true)
170
+ confirm_flag = confirm_flag.to_s.upcase
171
+ if ("Y".casecmp confirm_flag) == 0 || ("YES".casecmp confirm_flag) == 0
172
+ Dir.chdir(project_directory_path + "/" + project_name)
173
+ project_main_file = project_name + ".rb"
174
+ unless (File.exists?(project_main_file))
175
+ FileUtils.touch project_main_file
176
+ source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/project_file.rb"
177
+ destination = project_directory_path + "/" + project_name + "/" + project_main_file
178
+ FileUtils.copy_file(source,destination)
179
+ outdata = File.read(destination).gsub("Project", project_name.capitalize)
180
+ File.open(destination, 'w') do |out|
181
+ out << outdata
182
+ end
183
+ print_path(project_main_file, project_directory_path + "/" + project_name, project_directory_path)
184
+ end
185
+ unless (File.exists?("include.rb"))
186
+ FileUtils.touch "include.rb"
187
+ source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/include.rb"
188
+ destination = project_directory_path + "/" + project_name + "/include.rb"
189
+ FileUtils.copy_file(source,destination)
190
+ print_path("include.rb", project_directory_path + "/" + project_name, project_directory_path)
191
+ end
192
+ unless (File.exists?("Gemfile"))
193
+ FileUtils.touch "Gemfile"
194
+ source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/Gemfile"
195
+ destination = project_directory_path + "/" + project_name + "/Gemfile"
196
+ FileUtils.copy_file(source,destination)
197
+ print_path("Gemfile", project_directory_path + "/" + project_name, project_directory_path)
198
+ end
199
+
200
+ Dir.chdir(project_directory_path)
201
+ # internal_dir -- array for storing framework directory names
202
+ internal_dir = ["libraries", "testcases", "logs", "reports", "screenshots"]
203
+ directory_path = project_directory_path + "/" + project_name
204
+ # dir_counter -- iterator for the loop
205
+ for dir_counter in 0..internal_dir.length-1
206
+ create_dir(internal_dir[dir_counter], directory_path, project_directory_path)
207
+ end
208
+ puts "\nFramework for #{project_name} is created..."
209
+ puts "\nbundle install"
210
+ Dir.chdir(project_directory_path + "/" + project_name)
211
+ system("bundle install")
212
+ Dir.chdir(project_directory_path)
213
+ else
214
+ puts "Not continuing. Exiting creation of framework..."
215
+ exit
216
+ end
217
+ end
218
+
219
+ if exist_flag == 4
220
+ puts "Project exist !!! So exiting..."
221
+ exit
222
+ end
223
+
224
+ if update_flag ==1
225
+ unless File.exists?(project_name)
226
+ puts "\n#{project_name} does not exist in current location...\nSo exiting ..."
227
+ exit
228
+ end
229
+ Dir.chdir(project_directory_path + "/" + project_name)
230
+ source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/include.rb"
231
+ destination = "include.rb"
232
+ compare_result_1 = FileUtils.compare_file(source, destination).to_s
233
+ source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/Gemfile"
234
+ destination = "Gemfile"
235
+ compare_result_2 = FileUtils.compare_file(source, destination).to_s
236
+
237
+ if ("true".casecmp compare_result_1) == 0 && ("true".casecmp compare_result_2) == 0
238
+ puts "\nFramework for #{project_name} is already updated..."
239
+ puts "\nbundle install"
240
+ Dir.chdir(project_directory_path + "/" + project_name)
241
+ system("bundle install")
242
+ Dir.chdir(project_directory_path)
243
+ exit
244
+ else
245
+ puts "\nFramework for #{project_name} needs to be updated..."
246
+ source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/include.rb"
247
+ destination = "include.rb"
248
+ source_data = Array.new
249
+ source_data = IO.readlines(source)
250
+ destination_data = Array.new
251
+ destination_data = IO.readlines(destination)
252
+ source_data.each do |thing|
253
+ present_flag = destination_data.include? thing
254
+ present_flag = present_flag.to_s
255
+ if ("false".casecmp present_flag) == 0
256
+ #File.open(destination, 'a+') { |file| file.write(thing.to_s) }
257
+ f = File.open(destination, "r+")
258
+ lines = f.readlines
259
+ f.close
260
+ lines = [thing] + lines
261
+ output = File.new(destination, "w")
262
+ lines.each { |line| output.write line }
263
+ output.close
264
+ end
265
+ end
266
+ print_path("include.rb", project_directory_path + "/" + project_name, project_directory_path)
267
+
268
+ source = File.expand_path File.dirname(__FILE__).to_s + "/copyfiles/Gemfile"
269
+ destination = "Gemfile"
270
+ source_data = Array.new
271
+ source_data = IO.readlines(source)
272
+ destination_data = Array.new
273
+ destination_data = IO.readlines(destination)
274
+ source_data.each do |thing|
275
+ present_flag = destination_data.include? thing
276
+ present_flag = present_flag.to_s
277
+ if ("false".casecmp present_flag) == 0
278
+ #File.open(destination, 'a+') { |file| file.write(thing.to_s) }
279
+ f = File.open(destination, "r+")
280
+ lines = f.readlines
281
+ f.close
282
+ lines = [thing] + lines
283
+ output = File.new(destination, "w")
284
+ lines.each { |line| output.write line }
285
+ output.close
286
+ end
287
+ end
288
+ print_path("Gemfile", project_directory_path + "/" + project_name, project_directory_path)
289
+
290
+ puts "\nFramework for #{project_name} is updated..."
291
+ puts "\nbundle install"
292
+ Dir.chdir(project_directory_path + "/" + project_name)
293
+ system("bundle install")
294
+ Dir.chdir(project_directory_path)
295
+ end
296
+ end
297
+