2015-10-26 14:50:57 +00:00
|
|
|
# encoding: utf-8
|
|
|
|
# author: Dominik Richter
|
|
|
|
# author: Christoph Hartmann
|
|
|
|
|
2016-01-28 13:47:46 +00:00
|
|
|
require 'helper'
|
|
|
|
|
2016-01-02 22:58:28 +00:00
|
|
|
describe PasswdParser do
|
|
|
|
let (:parser) { Class.new() { include PasswdParser }.new }
|
2015-10-26 14:50:57 +00:00
|
|
|
|
|
|
|
describe '#parse_passwd' do
|
|
|
|
it 'parses nil content' do
|
|
|
|
parser.parse_passwd(nil).must_equal([])
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'parses an empty passwd line' do
|
|
|
|
parser.parse_passwd('').must_equal([])
|
|
|
|
end
|
|
|
|
|
2016-08-16 08:38:55 +00:00
|
|
|
it 'parses a comment line' do
|
|
|
|
content = <<EOF
|
|
|
|
# This is a comment
|
|
|
|
# this is another comment
|
|
|
|
root:x:0:0:root:/root:/bin/sh
|
|
|
|
EOF
|
|
|
|
info = [{ "user"=>"root",
|
|
|
|
"password"=>"x",
|
|
|
|
"uid"=>"0",
|
|
|
|
"gid"=>"0",
|
|
|
|
"desc"=>"root",
|
|
|
|
"home"=>"/root",
|
|
|
|
"shell"=>"/bin/sh" }]
|
|
|
|
parser.parse_passwd(content).must_equal(info)
|
|
|
|
end
|
|
|
|
|
2015-10-26 14:50:57 +00:00
|
|
|
it 'parses a valid passwd line' do
|
|
|
|
info = [{
|
2016-02-18 11:00:34 +00:00
|
|
|
"user"=>"root",
|
2015-10-26 14:50:57 +00:00
|
|
|
"password"=>"x",
|
|
|
|
"uid"=>"0",
|
|
|
|
"gid"=>"0",
|
|
|
|
"desc"=>"root",
|
|
|
|
"home"=>"/root",
|
|
|
|
"shell"=>"/bin/sh"
|
|
|
|
}]
|
|
|
|
parser.parse_passwd('root:x:0:0:root:/root:/bin/sh').must_equal(info)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|