mirror of
https://github.com/askn/faker.git
synced 2023-08-10 21:13:01 +03:00
update Internet#password
This commit is contained in:
parent
ca166af7af
commit
0b5942bf58
12
README.md
12
README.md
@ -122,10 +122,16 @@ Faker::Internet.user_name('Nancy') #=> "nancy"
|
||||
|
||||
Faker::Internet.user_name('Nancy Johnson', %w(. _ -)) #=> "johnson-nancy"
|
||||
|
||||
# Optional argument min_length=0
|
||||
Faker::Internet.password #=> "doloremquealiquidrerum"
|
||||
# Optional arguments: min_length=8, max_length=16
|
||||
Faker::Internet.password #=> "vg5msvy1uerg7"
|
||||
|
||||
Faker::Internet.password(8) #=> "consecteturadasperiores"
|
||||
Faker::Internet.password(8) #=> "yfgjik0hgzdqs0"
|
||||
|
||||
Faker::Internet.password(10, 20) #=> "eoc9shwd1hwq4vbgfw"
|
||||
|
||||
Faker::Internet.password(10, 20, true) #=> "3k5qS15aNmG"
|
||||
|
||||
Faker::Internet.password(10, 20, true, true) #=> "*%NkOnJsH4"
|
||||
|
||||
Faker::Internet.domain_name #=> "effertz.info"
|
||||
|
||||
|
@ -62,32 +62,32 @@ describe Faker::Internet do
|
||||
end
|
||||
|
||||
it "password_with_integer_arg" do
|
||||
# (1..32).to_a.each do |min_length|
|
||||
# assert { Faker::Internet.password(min_length).size >= min_length }
|
||||
# end
|
||||
(1..32).to_a.each do |min_length|
|
||||
assert { (Faker::Internet.password(min_length).size >= min_length).should be_true }
|
||||
end
|
||||
end
|
||||
|
||||
it "password_max_with_integer_arg" do
|
||||
# (1..32).to_a.each do |min_length|
|
||||
# max_length = min_length + 4
|
||||
# assert { Faker::Internet.password(min_length, max_length).size <= max_length }
|
||||
# end
|
||||
(1..32).to_a.each do |min_length|
|
||||
max_length = min_length + 4
|
||||
assert { (Faker::Internet.password(min_length, max_length).size <= max_length).should be_true }
|
||||
end
|
||||
end
|
||||
|
||||
it "password_with_mixed_case" do
|
||||
# Faker::Internet.password.match(/[A-Z]+/).should_not eq nil
|
||||
Faker::Internet.password.match(/[A-Z]+/).should_not eq nil
|
||||
end
|
||||
|
||||
it "password_without_mixed_case" do
|
||||
# Faker::Internet.password(8, 12, false).match(/[^A-Z]+/).should_not eq nil
|
||||
Faker::Internet.password(8, 12, false).match(/[^A-Z]+/).should_not eq nil
|
||||
end
|
||||
|
||||
it "password_with_special_chars" do
|
||||
# Faker::Internet.password(8, 12, true, true).match(/[!@#\$%\^&\*]+/).should_not eq nil
|
||||
Faker::Internet.password(8, 12, true, true).match(/[!@#\$%\^&\*]+/).should_not eq nil
|
||||
end
|
||||
|
||||
it "password_without_special_chars" do
|
||||
# Faker::Internet.password(8, 12, true).match(/[^!@#\$%\^&\*]+/).should_not eq nil
|
||||
Faker::Internet.password(8, 12, true).match(/[^!@#\$%\^&\*]+/).should_not eq nil
|
||||
end
|
||||
|
||||
it "domain_name" do
|
||||
|
@ -93,11 +93,26 @@ module Faker
|
||||
(words || Lorem.words(2).join(' ')).gsub(' ', glue).downcase
|
||||
end
|
||||
|
||||
def self.password(min_length = 0)
|
||||
temp = Lorem.words.join
|
||||
while temp.size < min_length
|
||||
temp += Lorem.word
|
||||
def self.password(min_length = 8, max_length = 16, mix_case = true, special_chars = false)
|
||||
temp = Lorem.characters(min_length)
|
||||
diff_length = max_length - min_length
|
||||
if diff_length > 0
|
||||
diff_rand = rand(diff_length + 1)
|
||||
temp += Lorem.characters(diff_rand)
|
||||
end
|
||||
temp = temp[0..min_length] if min_length > 0
|
||||
|
||||
if mix_case
|
||||
temp = temp.gsub(/.{1,2}/) { |s| "#{s[0]}#{s[1].upcase if s[1]?}" }
|
||||
end
|
||||
|
||||
if special_chars
|
||||
chars = %w(! @ # $ % ^ & *)
|
||||
Random.rand(min_length).times do |i|
|
||||
temp = temp.sub({ temp[i] => chars[Random.rand(chars.size)] })
|
||||
end
|
||||
end
|
||||
|
||||
return temp
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user