#!/usr/local/bin/ruby if $0 == __FILE__ Dir.chdir File.dirname(__FILE__)+'/../' $:.unshift File.expand_path('../lib/') end require 'rio' require 'test/unit' require 'test/unit/testsuite' class TC_RIO_abs < Test::Unit::TestCase def test_abs rio('qp/test_abs').rmtree.mkpath.chdir { require 'uri' hdurl = 'http://localhost/' hduri = ::URI.parse(hdurl) hd = rio(hduri) assert_equal('/',hd.path) assert_nil(hd.fspath) assert_equal('http',hd.scheme) assert_equal('localhost',hd.host) assert_equal(true,hd.abs?) assert_equal(true,hd.absolute?) assert_equal(hdurl,hd.abs.to_url) hdurl = 'http://localhost/' hd = rio(hdurl) assert_equal('/',hd.path) assert_nil(hd.fspath) assert_equal('http',hd.scheme) assert_equal('localhost',hd.host) assert_equal(true,hd.abs?) assert_equal(true,hd.absolute?) assert_equal(hdurl,hd.abs.to_url) hdurl = 'http://localhost' hduri = ::URI.parse(hdurl) hd = rio(hduri) assert_equal('/',hd.path) assert_nil(hd.fspath) assert_equal('http',hd.scheme) assert_equal('localhost',hd.host) assert_equal(true,hd.abs?) assert_equal(true,hd.absolute?) assert_equal(hdurl+'/',hd.abs.to_url) hdurl = 'http://localhost' hd = rio(hdurl) assert_equal('/',hd.path) assert_nil(hd.fspath) assert_equal('http',hd.scheme) assert_equal('localhost',hd.host) assert_equal(true,hd.abs?) assert_equal(true,hd.absolute?) assert_equal(hdurl+'/',hd.abs.to_url) hdurl = 'http://localhost/rio/hw.html' hd = rio(hdurl) assert_equal('/rio/hw.html',hd.path) assert_nil(hd.fspath) assert_equal('http',hd.scheme) assert_equal('localhost',hd.host) assert_equal(true,hd.abs?) assert_equal(true,hd.absolute?) assert_equal(hdurl,hd.abs.to_url) hdurl = 'file://localhost/' hduri = ::URI.parse(hdurl) hd = rio(hduri) assert_equal('/',hd.path) assert_equal('/',hd.fspath) assert_equal('file',hd.scheme) assert_equal('localhost',hd.host) assert_equal(true,hd.abs?) assert_equal(true,hd.absolute?) assert_equal(hdurl,hd.to_url) assert_equal(hdurl,hd.abs.to_url) hdurl = 'file://localhost/' hd = rio(hdurl) assert_equal('/',hd.path) assert_equal('/',hd.fspath) assert_equal('file',hd.scheme) assert_equal('localhost',hd.host) assert_equal(true,hd.abs?) assert_equal(true,hd.absolute?) assert_equal(hdurl,hd.to_url) assert_equal(hdurl,hd.abs.to_url) hdurl = 'file://localhost' hduri = ::URI.parse(hdurl) hd = rio(hduri) assert_equal('/',hd.path) assert_equal('/',hd.fspath) assert_equal('file',hd.scheme) assert_equal('localhost',hd.host) assert_equal(true,hd.abs?) assert_equal(true,hd.absolute?) assert_equal(hdurl+'/',hd.to_url) assert_equal(hdurl+'/',hd.abs.to_url) hdurl = 'file://localhost' hd = rio(hdurl) assert_equal('/',hd.path) assert_equal('/',hd.fspath) assert_equal('file',hd.scheme) assert_equal('localhost',hd.host) assert_equal(true,hd.abs?) assert_equal(true,hd.absolute?) assert_equal(hdurl+'/',hd.to_url) assert_equal(hdurl+'/',hd.abs.to_url) hdurl = 'file:///' hduri = ::URI.parse(hdurl) hd = rio(hduri) assert_equal('/',hd.path) assert_equal('/',hd.fspath) assert_equal('file',hd.scheme) assert_equal('',hd.host) assert_equal(true,hd.abs?) assert_equal(true,hd.absolute?) assert_equal(hdurl,hd.to_url) assert_equal(hdurl,hd.abs.to_url) hdurl = 'file:///' hd = rio(hdurl) assert_equal('/',hd.path) assert_equal('/',hd.fspath) assert_equal('file',hd.scheme) assert_equal('',hd.host) assert_equal(true,hd.abs?) assert_equal(true,hd.absolute?) assert_equal(hdurl,hd.to_url) assert_equal(hdurl,hd.abs.to_url) hdurl = '/' hd = rio(hdurl) assert_equal('/',hd.path) assert_equal('/',hd.fspath) assert_equal('file',hd.scheme) assert_equal('',hd.host) assert_equal(true,hd.abs?) assert_equal(true,hd.absolute?) assert_equal(hdurl,hd.abs.to_s) assert_equal('file:///',hd.to_url) assert_equal('file:///',hd.abs.to_url) require 'tmpdir' hdurl = '/tmp' hdurl = '/WINDOWS' unless FileTest.directory?(hdurl) hd = rio(hdurl) # assert_equal(hdurl+'/',hd.path) assert_equal(hdurl,hd.fspath) assert_equal('file',hd.scheme) assert_equal('',hd.host) assert_equal(true,hd.abs?) assert_equal(true,hd.absolute?) assert_equal(hdurl,hd.abs.to_s) # assert_equal('file://'+hdurl+'/',hd.to_url) # assert_equal('file://'+hdurl+'/',hd.abs.to_url) hdurl = '/tmp/' hd = rio(hdurl) assert_equal('/tmp/',hd.path) assert_equal('/tmp/',hd.fspath) assert_equal('file',hd.scheme) assert_equal('',hd.host) assert_equal(true,hd.abs?) assert_equal(true,hd.absolute?) assert_equal(hdurl,hd.abs.to_s) assert_equal('file:///tmp/',hd.to_url) assert_equal('file:///tmp/',hd.abs.to_url) # case qp dir does not exist rio('qp').delete! hdurl = 'qp' hd = rio(hdurl) assert_equal('qp',hd.path) assert_equal('qp',hd.fspath) assert_equal('path',hd.scheme) assert_nil(hd.host) assert_equal(false,hd.abs?) assert_equal(false,hd.absolute?) cwd = ::Dir.getwd assert_equal(cwd+'/'+hdurl,hd.abs.to_s) assert_equal('path:qp',hd.to_url) assert_equal('file://'+RIO::RL.fs2url(cwd)+'/'+hdurl,hd.abs.to_url) hdurl = 'qp/' hd = rio(hdurl) assert_equal('qp/',hd.path) assert_equal('qp/',hd.fspath) assert_equal('path',hd.scheme) assert_nil(hd.host) assert_equal(false,hd.abs?) assert_equal(false,hd.absolute?) cwd = ::Dir.getwd assert_equal(cwd+'/'+hdurl,hd.abs.to_s) assert_equal('path:qp/',hd.to_url) assert_equal('file://'+RIO::RL.fs2url(cwd)+'/'+hdurl,hd.abs.to_url) # case qp dir exists rio('qp').mkdir hdurl = 'qp' hd = rio(hdurl) # assert_equal('qp/',hd.path) assert_equal('qp',hd.fspath) assert_equal('path',hd.scheme) assert_nil(hd.host) assert_equal(false,hd.abs?) assert_equal(false,hd.absolute?) cwd = ::Dir.getwd assert_equal(cwd+'/'+hdurl,hd.abs.to_s) assert_equal('path:qp',hd.to_url) assert_equal('file://'+RIO::RL.fs2url(cwd)+'/'+hdurl,hd.abs.to_url) hdurl = 'qp/' hd = rio(hdurl) assert_equal('qp/',hd.path) assert_equal('qp/',hd.fspath) assert_equal('path',hd.scheme) assert_nil(hd.host) assert_equal(false,hd.abs?) assert_equal(false,hd.absolute?) cwd = ::Dir.getwd assert_equal(cwd+'/'+hdurl,hd.abs.to_s) assert_equal('path:qp/',hd.to_url) assert_equal('file://'+RIO::RL.fs2url(cwd)+'/'+hdurl,hd.abs.to_url) # case qp file exists rio('qp').rmtree.touch hdurl = 'qp' hd = rio(hdurl) assert_equal('qp',hd.path) assert_equal('qp',hd.fspath) assert_equal('path',hd.scheme) assert_nil(hd.host) assert_equal(false,hd.abs?) assert_equal(false,hd.absolute?) cwd = ::Dir.getwd assert_equal(cwd+'/'+hdurl,hd.abs.to_s) assert_equal('path:qp',hd.to_url) assert_equal('file://'+RIO::RL.fs2url(cwd)+'/'+hdurl,hd.abs.to_url) io = RIO.root assert_kind_of(RIO::Rio,io) assert_equal('/',io.to_s) z = RIO.rio(RIO.root,%w/tmp zippy/) assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy',z.to_s) io = RIO.cwd assert_kind_of(RIO::Rio,io) cwd = ::Dir.getwd assert_equal(cwd,io.path) io = RIO.cwd assert_kind_of(RIO::Rio,io) cwd = ::Dir.getwd assert_equal(cwd,io.to_s) io = RIO.root/'tmp' assert_kind_of(RIO::Rio,io) assert_equal('/tmp',io.to_s) tmp = RIO.root('tmp') assert_kind_of(RIO::Rio,tmp) assert_equal('/tmp',tmp.to_s) z = tmp/'zippy' assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy',z.to_s) z = RIO.rio('/tmp/zippy') assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy',z.to_s) z = RIO.rio(tmp,'zippy') assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy',z.to_s) z = RIO.rio(RIO.root,%w/tmp zippy/) assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy',z.to_s) z = RIO.rio(tmp)/'zippy' assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy',z.to_s) z = rio('/tmp/zippy') assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy',z.to_s) z = rio(tmp,'zippy') assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy',z.to_s) z = rio(RIO.root,%w/tmp zippy/) assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy',z.to_s) z = rio(tmp).join('zippy') assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy',z.to_s) require 'rio/uri/file' z = rio(URI('zippy/f.html')) assert_kind_of(RIO::Rio,z) assert_equal('zippy/f.html',z.to_s) z = rio(URI("file:///tmp/zippy/f.html")) assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy/f.html',z.to_s) z = rio("file:///tmp/zippy/f.html") assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy/f.html',z.to_s) z = rio("file:///tmp/","zippy/f.html") assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy/f.html',z.to_s) u = URI('zippy/f.html') z = rio("file:///tmp/",u) assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy/f.html',z.to_s) z = rio("file:///tmp/",RIO::RL::Builder.build(u)) assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy/f.html',z.to_s) z = rio("file:///tmp/",rio(u)) assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy/f.html',z.to_s) z = rio("/tmp",rio(u)) assert_kind_of(RIO::Rio,z) assert_equal('/tmp/zippy/f.html',z.to_s) } end end