Sha256: 3bdd5aac56fe26f4edf062251ddae399f59d58ebfc6a3f29d6f057eaf1d683ef

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

Contents

require 'hosts_file/parser'

describe HostsFile::Parser do
  def test_example(line, ip, name=nil, *alias_name)
    host = HostsFile::Parser.new(line).first
    host.ip.should eql(ip)
    host.name.should eql(name)
    host.aliases.should eql(alias_name)
  end

  it "should parse multiline" do
    @parser = HostsFile::Parser.new("1.1.1.1 hostname\n2.2.2.2 hostname2")
    @parser.collect {|h| h}.length.should eql(2)
  end

  it "should not parse comments" do
    @parser = HostsFile::Parser.new("#1.1.1.1 hostname")
    @parser.collect {|h| h}.length.should eql(0)
  end

  it "should not parse invalid lines" do
    @parser = HostsFile::Parser.new("1.1.1.1")
    @parser.collect {|h| h}.length.should eql(0)
  end

  it "should handle basic syntax" do
    test_example("1.1.1.1 HOSTNAME", "1.1.1.1", "HOSTNAME")
  end

  it "should handle advanced syntax" do
    test_example("1.1.1.1 HOSTNAME HOST", "1.1.1.1", "HOSTNAME", "HOST")
  end

  it "should support tab separation" do
    test_example("1.1.1.1\tHOSTNAME", "1.1.1.1", "HOSTNAME")
  end

  it "should tolerate lots of tab separation" do
    test_example("1.1.1.1\t\t\t\t\t\t\tHOSTNAME", "1.1.1.1", "HOSTNAME")
  end

  it "should tolerate lots of spaces" do
    test_example("1.1.1.1        HOSTNAME", "1.1.1.1", "HOSTNAME")
  end

  it "should tolerate lots of aliases" do
    test_example("1.1.1.1 HOSTNAME HOSTA HOSTB HOSTC HOSTD", "1.1.1.1", "HOSTNAME", "HOSTA", "HOSTB", "HOSTC", "HOSTD")
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hosts_file-0.0.2 spec/hosts_file/parser_spec.rb