Sha256: 90cafaab434b1d4ed4693983be85d66c5c0ece7ff322f89343147e2b0f916a39

Contents?: true

Size: 1.83 KB

Versions: 4

Compression:

Stored size: 1.83 KB

Contents

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

require 'timeout'
require 'test/unit'

require 'rufus/verbs'


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

4 entries across 4 versions & 1 rubygems

Version Path
rufus-verbs-0.8 test/proxy_test.rb
rufus-verbs-0.9 test/proxy_test.rb
rufus-verbs-0.7 test/proxy_test.rb
rufus-verbs-0.10 test/proxy_test.rb