Sha256: 32f42b7b9d216b7632f8d6011a78b6a00f5f91212870d3313bfbc7541f1ffcef

Contents?: true

Size: 1.13 KB

Versions: 4

Compression:

Stored size: 1.13 KB

Contents

require File.expand_path('../spec_helper', __FILE__)

VALID_DOMAIN = "google.com"
INVALID_DOMAIN = "gibidigibigididibitidibigitibidigitidididi.com"

class ItWorked < StandardError; end
class WontResolve < StandardError; end

class ConnectorThingy < Cool.io::TCPSocket
  def on_connect
    raise ItWorked
  end

  def on_resolve_failed
    raise WontResolve
  end
end

describe "DNS" do
  before :each do
    @loop = Cool.io::Loop.new
    @preferred_localhost_address = ::Socket.getaddrinfo("localhost", nil).first[3]
  end
  
  it "connects to valid domains" do
    begin
      c = ConnectorThingy.connect(VALID_DOMAIN, 80).attach(@loop)
      
      expect do
        @loop.run
      end.to raise_error(ItWorked)
    ensure
      c.close
    end
  end
  
  it "fires on_resolve_failed for invalid domains" do
    ConnectorThingy.connect(INVALID_DOMAIN, 80).attach(@loop)
    
    expect do
      @loop.run
    end.to raise_error(WontResolve)
  end

  it "resolve localhost even though hosts is empty" do
    Tempfile.open("empty") do |file|
      expect( Coolio::DNSResolver.hosts("localhost", file.path)).to eq @preferred_localhost_address
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
fluent-plugin-google-cloud-logging-on-prem-0.1.0 vendor/ruby/3.1.0/gems/cool.io-1.7.1/spec/dns_spec.rb
cool.io-1.7.1-x86-mingw32 spec/dns_spec.rb
cool.io-1.7.1-x64-mingw32 spec/dns_spec.rb
cool.io-1.7.1 spec/dns_spec.rb