diff options
Diffstat (limited to 'test/test_mogilefs.rb')
-rw-r--r-- | test/test_mogilefs.rb | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/test/test_mogilefs.rb b/test/test_mogilefs.rb index 6e9ec7f..d85cbf8 100644 --- a/test/test_mogilefs.rb +++ b/test/test_mogilefs.rb @@ -518,6 +518,56 @@ class TestMogileFS__MogileFS < TestMogileFS assert_equal 'readonly mogilefs', e.message end + def test_get_paths_args + sock = TCPServer.new("127.0.0.1", 0) + args = { :hosts => [ "127.0.0.1:#{sock.addr[1]}" ], :domain => "foo" } + c = MogileFS::MogileFS.new(args) + received = [] + th = Thread.new do + a = sock.accept + 6.times do + line = a.gets + received << line + a.write("OK paths=2&path1=http://0/a&path2=http://0/b\r\n") + end + a.close + end + expect = %w(http://0/a http://0/b) + assert_equal expect, c.get_paths("f") + assert_equal expect, c.get_paths("f",true,"alt") + assert_equal expect, c.get_paths("f",:noverify=>true,:zone=>"alt") + assert_equal expect, + c.get_paths("f",:noverify=>true,:zone=>"alt",:pathcount=>666) + c.instance_variable_set(:@zone, "alt") + assert_equal expect, c.get_paths("f") + assert_equal expect, c.get_paths("f", :zone=>"zzz") + th.join + + backend = c.instance_variable_get(:@backend) + expect = { "domain"=>"foo", "key"=>"f", "noverify"=>"0", "zone"=>"" } + tmp = backend.url_decode(received[0].split(/\s+/)[1]) + assert_equal expect, tmp + expect["noverify"] = "1" + expect["zone"] = "alt" + tmp = backend.url_decode(received[1].split(/\s+/)[1]) + assert_equal expect, tmp + + tmp = backend.url_decode(received[2].split(/\s+/)[1]) + assert_equal expect, tmp + + expect["pathcount"] = "666" + tmp = backend.url_decode(received[3].split(/\s+/)[1]) + assert_equal expect, tmp + + expect = { "domain"=>"foo", "key"=>"f", "noverify"=>"0", "zone"=>"alt" } + tmp = backend.url_decode(received[4].split(/\s+/)[1]) + + expect = { "domain"=>"foo", "key"=>"f", "noverify"=>"0", "zone"=>"zzz" } + tmp = backend.url_decode(received[5].split(/\s+/)[1]) + ensure + sock.close + end + def test_sleep @backend.sleep = {} assert_nothing_raised do |