Class: UserExtension

Inherits:
Object
  • Object
show all
Defined in:
lib/userextension/user_extension.rb

Class Method Summary collapse

Class Method Details

.capture_screenshot(selenium_diver, filename) ⇒ Object



214
215
216
217
218
219
220
221
# File 'lib/userextension/user_extension.rb', line 214

def self.capture_screenshot(selenium_diver, filename)
  browser_name = selenium_diver.capabilities.browser_name
  unless (browser_name.include? "safari")
    selenium_diver.save_screenshot filename
  else
    puts "#{browser_name} does not support for capturing screenshot !!!"
  end
end

.current_timestampObject

Call this function this way “current_timestamp”. This function will return the current timestamp.



165
166
167
168
169
170
# File 'lib/userextension/user_extension.rb', line 165

def self.current_timestamp
  timestamp = Time.now
  timestamp = timestamp.strftime("%d-%m-%Y-%H-%M-%S")
  timestamp = timestamp.to_s
  return timestamp
end

.dob_date(month, year) ⇒ Object



232
233
234
235
236
237
238
239
240
241
242
243
244
# File 'lib/userextension/user_extension.rb', line 232

def self.dob_date(month, year)
  if month=='January' || month=='March' || month=='May' || month =='July' || month == 'August' || month=='October' || month == 'December'
    day = rand(1..31)
  elsif month== 'Febaury'
    if ((year % 4 == 0) && !(year % 100 == 0) || (year % 400 == 0))
      day = rand(1..29)
    else
      day = rand(1..28)
    end
  else
    day = rand(1..30)
  end
end

.dob_monthObject



228
229
230
# File 'lib/userextension/user_extension.rb', line 228

def self.dob_month
  month = %w{January February March April May June July August September October November December}.sample
end

.dob_year(yrs_old) ⇒ Object



223
224
225
226
# File 'lib/userextension/user_extension.rb', line 223

def self.dob_year(yrs_old)
  current_year = Time.now.year
  year= rand(current_year-100..current_year-yrs_old)
end

.element_present?(how, what) ⇒ Boolean

Call this function this way “element_present?(how, what)”. This function will check if the element is present or not.

Returns:

  • (Boolean)


154
155
156
157
158
159
160
161
# File 'lib/userextension/user_extension.rb', line 154

def self.element_present?(how, what)
  begin
    $driver.find_element(how, what)
    return true
  rescue
    return false
  end
end

.generate_addressObject

Call this function this way “generate_address”. This function will generate a random address and return it.



102
103
104
105
# File 'lib/userextension/user_extension.rb', line 102

def self.generate_address
  address = Faker::Address.secondary_address
  return address
end

.generate_alphanumeric_string(length) ⇒ Object

Call this function this way “generate_alphanumeric_string(length)”. This function will generate a random alpha-numeric string and return it.



88
89
90
91
# File 'lib/userextension/user_extension.rb', line 88

def self.generate_alphanumeric_string(length)
  str = (1..length).map { rand(36).to_s(36) }.join
  return str
end

.generate_day(month, year) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/userextension/user_extension.rb', line 71

def self.generate_day(month, year)
  if month=='January' || month=='March' || month=='May' || month =='July' || month == 'August' || month=='October' || month == 'December'
    day = rand(1..31)
  elsif month== 'Febaury'
    if ((year % 4 == 0) && !(year % 100 == 0) || (year % 400 == 0))
      day = rand(1..29)
    else
      day = rand(1..28)
    end
  else
    day = rand(1..30)
  end
  return day
end

.generate_future_date(days) ⇒ Object

Call this function this way “generate_future_date(days)”. This function will generate a future date and return it.



46
47
48
49
50
# File 'lib/userextension/user_extension.rb', line 46

def self.generate_future_date(days)
  date = Date.strptime(Date.today.to_s)
  date = date + days
  return date.strftime("%d-%m-%Y")
end

.generate_mail_id(length, domain) ⇒ Object

Call this function this way “generate_mail_id(length, domain)”. This function will generate a random Yopmail id and return it.



5
6
7
8
# File 'lib/userextension/user_extension.rb', line 5

def self.generate_mail_id(length, domain)
  yopmailid = (1..length).map { ('a'..'z').to_a[rand(26)] }.join+"@"+domain.to_s
  return yopmailid
end

.generate_monthObject



66
67
68
69
# File 'lib/userextension/user_extension.rb', line 66

def self.generate_month
  month = %w{January February March April May June July August September October November December}.sample
  return month
end

.generate_name(length) ⇒ Object

Call this function this way “generate_name(length)”. This function will generate a random name and return it.



26
27
28
29
30
31
32
33
34
35
# File 'lib/userextension/user_extension.rb', line 26

def self.generate_name(length)
  str = (1..length-1).map { ('a'..'z').to_a[rand(26)] }.join
  str = ('A'..'Z').to_a[rand(26)] + str
  #str = Faker::Name.first_name
  #while str.length != length
  #  str = Faker::Name.first_name
  #end
  str.capitalize
  return str
end

.generate_number(minrange, maxrange) ⇒ Object

Call this function this way “generate_number(minrange, maxrange)”. This function will generate a random number and return it.



39
40
41
42
# File 'lib/userextension/user_extension.rb', line 39

def self.generate_number(minrange, maxrange)
  number = rand(minrange..maxrange)
  return number
end

.generate_paragraphObject

Call this function this way “generate_paragraph”. This function will generate a paragraph and return it.



116
117
118
119
# File 'lib/userextension/user_extension.rb', line 116

def self.generate_paragraph
  paragraph = Faker::Lorem.paragraphs.map { |i| i.to_s }.join(" ")
  return paragraph
end

.generate_past_date(days) ⇒ Object

Call this function this way “generate_past_date(days)”. This function will generate a past date and return it.



54
55
56
57
58
# File 'lib/userextension/user_extension.rb', line 54

def self.generate_past_date(days)
  date = Date.strptime(Date.today.to_s)
  date = date - days
  return date.strftime("%d-%m-%Y")
end

.generate_phone_numberObject

Call this function this way “generate_phone_number”. This function will generate a random phone number and return it.



109
110
111
112
# File 'lib/userextension/user_extension.rb', line 109

def self.generate_phone_number
  phone_number = rand(1000000000..9999999999)
  return phone_number
end

.generate_sentenceObject

Call this function this way “generate_sentence”. This function will generate a sentence and return it.



130
131
132
133
# File 'lib/userextension/user_extension.rb', line 130

def self.generate_sentence
  sentence = Faker::Lorem.sentence
  return sentence
end

.generate_street_addressObject

Call this function this way “generate_street_address”. This function will generate a random street address and return it.



95
96
97
98
# File 'lib/userextension/user_extension.rb', line 95

def self.generate_street_address
  street_address = Faker::Address.street_address
  return street_address
end

.generate_string(length) ⇒ Object

Call this function this way “generate_string(length)”. This function will generate a random string and return it.



12
13
14
15
# File 'lib/userextension/user_extension.rb', line 12

def self.generate_string(length)
  str = (1..length).map { ('a'..'z').to_a[rand(26)] }.join
  return str
end

.generate_titleObject

Call this function this way “generate_title”. This function will generate a title and return it.



19
20
21
22
# File 'lib/userextension/user_extension.rb', line 19

def self.generate_title
  title = Faker::Name.prefix
  return title
end

.generate_wordObject

Call this function this way “generate_words(number)”. This function will generate words and return it.



123
124
125
126
# File 'lib/userextension/user_extension.rb', line 123

def self.generate_word
  word = RandomWord.adjs.next
  return word
end

.generate_year(yrs_old) ⇒ Object



60
61
62
63
64
# File 'lib/userextension/user_extension.rb', line 60

def self.generate_year(yrs_old)
  current_year = Time.now.year
  year= rand(current_year-100..current_year-yrs_old)
  return year
end

.init_recordObject



173
174
175
176
177
178
179
180
181
182
# File 'lib/userextension/user_extension.rb', line 173

def self.init_record()
  os = RUBY_PLATFORM
  if os.include? "linux"
    headless_obj = Headless.new
    headless_obj.start
    return headless_obj
  else
    puts "#{RUBY_PLATFORM} is not a linux platform !!!"
  end
end


246
247
248
249
250
251
252
253
254
255
# File 'lib/userextension/user_extension.rb', line 246

def self.load_link(waittime)
  begin
    Timeout::timeout(waittime) do
      yield
    end
  rescue Timeout::Error => e
    puts "Page load timed out: #{e}"
    retry
  end
end

.record_video_start_capture(headless_obj) ⇒ Object



185
186
187
188
189
190
191
192
# File 'lib/userextension/user_extension.rb', line 185

def self.record_video_start_capture(headless_obj)
  os = RUBY_PLATFORM
  if os.include? "linux"
    headless_obj.video.start_capture
  else
    puts "#{RUBY_PLATFORM} is not a linux platform !!!"
  end
end

.record_video_stop_and_discard(headless_obj) ⇒ Object



205
206
207
208
209
210
211
212
# File 'lib/userextension/user_extension.rb', line 205

def self.record_video_stop_and_discard(headless_obj)
  os = RUBY_PLATFORM
  if os.include? "linux"
    headless_obj.video.stop_and_discard()
  else
    puts "#{RUBY_PLATFORM} is not a linux platform !!!"
  end
end

.record_video_stop_and_save(headless_obj, filename) ⇒ Object



195
196
197
198
199
200
201
202
# File 'lib/userextension/user_extension.rb', line 195

def self.record_video_stop_and_save(headless_obj, filename)
  os = RUBY_PLATFORM
  if os.include? "linux"
    headless_obj.video.stop_and_save(filename)
  else
    puts "#{RUBY_PLATFORM} is not a linux platform !!!"
  end
end

.write_logs_to_text_file(log_file, logs) ⇒ Object

Call this function this way “write_logs_to_text_file(log_file, logs)”. This function will write the logs to .log file.



145
146
147
148
149
150
# File 'lib/userextension/user_extension.rb', line 145

def self.write_logs_to_text_file(log_file, logs)
  File.open(log_file, "a") do |txt_file|
    txt_file.puts logs
    txt_file.puts "\n"
  end
end

.write_result_to_csv(report_file, test_id, test_case, result, comment = "") ⇒ Object

Call this function this way “write_result_to_csv(report_file, test_id, test_case, result, comment=”“)”. This function will write the result to .csv file.



137
138
139
140
141
# File 'lib/userextension/user_extension.rb', line 137

def self.write_result_to_csv(report_file, test_id, test_case, result, comment="")
  CSV.open(report_file, "ab") do |csv_file|
    csv_file << [test_id, test_case, result, comment]
  end
end