Sha256: 877c88c020f9d39e6fcd35a275a108d19e38e19a93e9540d668612e2ebca66ea

Contents?: true

Size: 1.54 KB

Versions: 2

Compression:

Stored size: 1.54 KB

Contents

#
# Testing rufus-verbs
#
# jmettraux@gmail.com
#
# Thu Jan 17 10:15:52 JST 2008
#


require File.dirname(__FILE__) + '/base.rb'


class ProxyTest < Test::Unit::TestCase

  include Rufus::Verbs


  def test_0

    uri = "http://rufus.rubyforge.org/rufus-verbs/index.html"

    res0 = get(uri, :proxy => false)

    assert_not_nil res0.body # just displaying the test dot

    proxies = find_proxies

    res1 = nil

    proxies.each do |proxy|
      begin
        Timeout::timeout 2 do
          res1 = get(uri, :proxy => proxy)
        end
        break if res1.code.to_i == 200
      rescue Exception => e
        puts "skipped proxy '#{proxy}'"
      end
    end

    if res1.code.to_i != 200
      puts
      puts
      puts "sorry, couldn't find an open proxy, couldn't test the"
      puts "proxy feature of 'rufus-verbs'"
      puts
      puts
      return
    end

    assert_equal res0.body.length, res1.body.length

    #p res0.to_hash
    #p res1.to_hash

    via1 = res1["via"]

    unless via1
      puts
      puts
      puts "seems like no open proxy could be found... no via..."
      puts "can't test for now"
      puts
      puts
      return
    end

    via1 = res1["via"].split(", ")[-1]
      # last proxy

    assert_no_match /wikimedia\.org/, via1
      # making sure that the proxy was not one of wikipedia
  end

  protected

    def find_proxies

      res = get "http://freeproxy.ch/proxy.txt"
      lines = res.body.split "\n"
      lines[4..-1].collect do |line|
        l = line.split("\t")
        'http://' + l[0]
      end
    end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rufus-verbs-1.0.1 test/proxy_test.rb
rufus-verbs-1.0.0 test/proxy_test.rb