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



188
189
190
191
192
193
194
195
# File 'lib/userextension/user_extension.rb', line 188

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.



139
140
141
142
143
144
# File 'lib/userextension/user_extension.rb', line 139

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



206
207
208
209
210
211
212
213
214
215
216
217
218
# File 'lib/userextension/user_extension.rb', line 206

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



202
203
204
# File 'lib/userextension/user_extension.rb', line 202

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



197
198
199
200
# File 'lib/userextension/user_extension.rb', line 197

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)


128
129
130
131
132
133
134
135
# File 'lib/userextension/user_extension.rb', line 128

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.



76
77
78
79
# File 'lib/userextension/user_extension.rb', line 76

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.



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

def self.generate_alphanumeric_string(length)
  str = (1..length).map { rand(36).to_s(36) }.join
  return str
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_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.



90
91
92
93
# File 'lib/userextension/user_extension.rb', line 90

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.



83
84
85
86
# File 'lib/userextension/user_extension.rb', line 83

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.



104
105
106
107
# File 'lib/userextension/user_extension.rb', line 104

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.



69
70
71
72
# File 'lib/userextension/user_extension.rb', line 69

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.



97
98
99
100
# File 'lib/userextension/user_extension.rb', line 97

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

.init_recordObject



147
148
149
150
151
152
153
154
155
156
# File 'lib/userextension/user_extension.rb', line 147

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


220
221
222
223
224
225
226
227
228
229
# File 'lib/userextension/user_extension.rb', line 220

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



159
160
161
162
163
164
165
166
# File 'lib/userextension/user_extension.rb', line 159

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



179
180
181
182
183
184
185
186
# File 'lib/userextension/user_extension.rb', line 179

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



169
170
171
172
173
174
175
176
# File 'lib/userextension/user_extension.rb', line 169

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.



119
120
121
122
123
124
# File 'lib/userextension/user_extension.rb', line 119

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.



111
112
113
114
115
# File 'lib/userextension/user_extension.rb', line 111

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