fernyb_davclient 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,37 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'test_helper'
3
+ require 'rubygems'
4
+ require 'davclient'
5
+ require 'test/unit'
6
+ require 'test/zentest_assertions'
7
+
8
+ class TestDelete < Test::Unit::TestCase
9
+
10
+ def test_basic_delete
11
+ url = "https://vortex-dav.uio.no/brukere/thomasfl/"
12
+ WebDAV.cd(url)
13
+
14
+ new_url = url + "davclient_test_folder/"
15
+
16
+ props = WebDAV.propfind(new_url, :xml => true)
17
+ if(props)
18
+ WebDAV.delete(new_url)
19
+ end
20
+ props = WebDAV.propfind(new_url, :xml => true)
21
+ assert_nil props
22
+
23
+ WebDAV.mkcol("davclient_test_folder")
24
+
25
+ props = WebDAV.propfind(new_url, :xml => true)
26
+ assert props
27
+
28
+ assert_equal url, WebDAV.CWURL
29
+
30
+ WebDAV.delete("davclient_test_folder")
31
+ props = WebDAV.propfind(new_url, :xml => true)
32
+ assert_nil props
33
+
34
+ end
35
+
36
+
37
+ end
@@ -0,0 +1,63 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'test_helper'
3
+ require 'rubygems'
4
+ require 'davclient'
5
+ require 'davclient/davcli'
6
+ require 'test/unit'
7
+ require 'test/zentest_assertions'
8
+
9
+ class TestGetCLI < Test::Unit::TestCase
10
+
11
+ def get(*args)
12
+ out, err = util_capture do
13
+ DavCLI.get(*args)
14
+ end
15
+ return [out.string, err.string]
16
+ end
17
+
18
+ def create_file(filename, content)
19
+ File.open(filename, 'w') {|f| f.write(content) }
20
+ end
21
+
22
+ def setup
23
+ @basename = "get_test.html"
24
+ @filename = "/tmp/" + @basename
25
+ @url = "https://vortex-dav.uio.no/brukere/thomasfl/get_test/"
26
+ @html = "<html><head><title>Testfile</title></head><body><h1>Testfile</h1></body></html>"
27
+ create_file(@filename, @html)
28
+
29
+ WebDAV.delete(@url)
30
+ WebDAV.mkcol(@url)
31
+ WebDAV.cd(@url)
32
+
33
+ for i in 1..4 do
34
+ filename = "get_test_" + i.to_s + ".html"
35
+ PutCLI.put([@filename, @url + filename])
36
+ end
37
+
38
+ end
39
+
40
+ def teardown
41
+ File.delete(@filename)
42
+ # WebDAV.delete(@url)
43
+ WebDAV.cd("https://vortex-dav.uio.no/brukere/thomasfl/")
44
+ end
45
+
46
+ def test_basic_get
47
+ # dav get filename
48
+ # assert_equal @html, WebDAV.get(@url + @basename)
49
+ WebDAV.cd(@url)
50
+ # out, err = get(["get_test_1.html"])
51
+ `rm get_*.html 2> /dev/null`
52
+ DavCLI.get(["get_test_1.html"])
53
+ number_of_files = `ls -1 get_test*.html|wc -l`.to_i
54
+ assert_equal 1, number_of_files
55
+
56
+ `rm get_*.html 2> /dev/null`
57
+ DavCLI.get(["get_test_1.html", "get_test_2.html"])
58
+ number_of_files = `ls -1 get_test*.html|wc -l`.to_i
59
+ assert_equal 2, number_of_files
60
+
61
+ end
62
+
63
+ end
@@ -0,0 +1,45 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'test_helper'
3
+ require 'rubygems'
4
+ require 'davclient'
5
+ require 'davclient'
6
+ require 'davclient/davcli'
7
+ require 'test/unit'
8
+ require 'test/zentest_assertions'
9
+
10
+
11
+ class TestLsCLI < Test::Unit::TestCase
12
+
13
+ def ls(*args)
14
+ out, err = util_capture do
15
+ DavCLI.ls(*args)
16
+ end
17
+ return [out.string, err.string]
18
+ end
19
+
20
+
21
+ def test_basic_ls
22
+ out, err = ls(["-a", "https://vortex-dav.uio.no/prosjekter/it-avisa/nyheter/2005/"])
23
+ assert_equal(9, out.split(/\n/).size )
24
+
25
+ assert(out =~ /^https:\/\//)
26
+ assert_equal("", err)
27
+
28
+ out, err = ls(["https://vortex-dav.uio.no/brukere/thomasfl/"])
29
+ assert (not (out =~ /^http/))
30
+ end
31
+
32
+ def test_ls_cwurl
33
+ out, err = ls(["-a", "https://vortex-dav.uio.no/prosjekter/it-avisa/nyheter/2006/"])
34
+ assert_equal(7, out.split(/\n/).size )
35
+
36
+ WebDAV.cd("https://vortex-dav.uio.no/prosjekter/it-avisa/nyheter/2006/")
37
+ out, err = ls(["-a"]) # If no url are given, should use the last used url
38
+ assert_equal(7, out.split(/\n/).size )
39
+
40
+ WebDAV.CWURL = "https://vortex-dav.uio.no/prosjekter/it-avisa/nyheter/2008/"
41
+ out, err = ls([])
42
+ assert_equal(10, out.split(/\n/).size )
43
+ end
44
+
45
+ end
@@ -0,0 +1,64 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'test_helper'
3
+ require 'rubygems'
4
+ require 'davclient'
5
+ require 'davclient/davcli'
6
+ require 'test/unit'
7
+ require 'test/zentest_assertions'
8
+
9
+ class TestMkcolCLI < Test::Unit::TestCase
10
+
11
+ def cd(*args)
12
+ out, err = util_capture do
13
+ DavCLI.cd(*args)
14
+ end
15
+ return [out.string, err.string]
16
+ end
17
+
18
+ def mkcol(*args)
19
+ out, err = util_capture do
20
+ DavCLI.mkcol(*args)
21
+ end
22
+ return [out.string, err.string]
23
+ end
24
+
25
+ def test_basic_mkcol
26
+ url = "https://vortex-dav.uio.no/brukere/thomasfl/"
27
+ out, err = cd([url])
28
+ new_url = url + "davclient_test_folder/"
29
+
30
+ props = WebDAV.propfind(new_url, :xml => true)
31
+ if(props)
32
+ WebDAV.delete(new_url)
33
+ end
34
+
35
+ WebDAV.mkcol(new_url)
36
+ props = WebDAV.propfind(new_url, :xml => true)
37
+ assert props
38
+ end
39
+
40
+ def test_relative_url
41
+ url = "https://vortex-dav.uio.no/brukere/thomasfl/"
42
+ out, err = cd([url])
43
+
44
+ new_url = url + "davclient_test_folder/"
45
+
46
+ props = WebDAV.propfind(new_url, :xml => true)
47
+ if(props)
48
+ WebDAV.delete(new_url)
49
+ end
50
+ props = WebDAV.propfind(new_url, :xml => true)
51
+ assert_nil props
52
+
53
+ WebDAV.mkcol("davclient_test_folder")
54
+
55
+ props = WebDAV.propfind(new_url, :xml => true)
56
+ assert props
57
+
58
+ url = "https://vortex-dav.uio.no/brukere/thomasfl/"
59
+ out, err = cd(url)
60
+
61
+ end
62
+
63
+
64
+ end
@@ -0,0 +1,65 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'test_helper'
3
+ require 'rubygems'
4
+ require 'davclient'
5
+ require 'davclient/davcli'
6
+ require 'test/unit'
7
+ require 'test/zentest_assertions'
8
+
9
+ class TestMove < Test::Unit::TestCase
10
+
11
+ def mv(*args)
12
+ out, err = util_capture do
13
+ DavCLI.mv(*args)
14
+ end
15
+ return [out.string, err.string]
16
+ end
17
+
18
+ def test_mv
19
+ $DEBUG = false
20
+ src = "https://vortex-dav.uio.no/brukere/thomasfl/testfile.html"
21
+ dest = "https://vortex-dav.uio.no/brukere/thomasfl/testfile_copy.html"
22
+ WebDAV.delete(dest)
23
+ assert !WebDAV.exists?(dest)
24
+
25
+ WebDAV.mv(src,dest)
26
+ assert WebDAV.exists?(dest)
27
+ assert !WebDAV.exists?(src)
28
+
29
+ WebDAV.mv(dest, src)
30
+
31
+ assert !WebDAV.exists?(dest)
32
+ assert WebDAV.exists?(src)
33
+ end
34
+
35
+ def test_mv_command_line
36
+ src = "https://vortex-dav.uio.no/brukere/thomasfl/testfile.html"
37
+ dest = "https://vortex-dav.uio.no/brukere/thomasfl/testfile_copy.html"
38
+ WebDAV.delete(dest)
39
+ assert !WebDAV.exists?(dest)
40
+
41
+ out, err = mv([src,dest])
42
+ assert WebDAV.exists?(dest)
43
+ assert !WebDAV.exists?(src)
44
+
45
+ out, err = mv([dest, src])
46
+ assert !WebDAV.exists?(dest)
47
+ assert WebDAV.exists?(src)
48
+
49
+ end
50
+
51
+ def test_mv_relative
52
+ WebDAV.cd("https://vortex-dav.uio.no/brukere/thomasfl/")
53
+
54
+ src = "testfile.html"
55
+ dest = "testfile.html"
56
+
57
+ out, err = mv([src,dest])
58
+ assert WebDAV.exists?(dest)
59
+
60
+ out, err = mv([dest, src])
61
+ assert WebDAV.exists?(src)
62
+ end
63
+
64
+
65
+ end
@@ -0,0 +1,40 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'test_helper'
3
+ require 'rubygems'
4
+ require 'davclient'
5
+ require 'davclient/davcli'
6
+ require 'test/unit'
7
+ require 'test/zentest_assertions'
8
+
9
+ class TestPropfind < Test::Unit::TestCase
10
+
11
+ def props(*args)
12
+ out, err = util_capture do
13
+ DavCLI.propfind(*args)
14
+ end
15
+ return [out.string, err.string]
16
+ end
17
+
18
+ def test_propfind_library_call
19
+ $DEBUG = false
20
+ url = "https://vortex-dav.uio.no/brukere/thomasfl/"
21
+ props = WebDAV.propfind(url)
22
+ assert props.to_s.size > 1000
23
+
24
+ props = WebDAV.propfind("..")
25
+ assert props.to_s.size > 1000
26
+
27
+ url = "https://vortex-dav.uio.no/brukere/"
28
+ props = WebDAV.propfind("../../brukere/")
29
+ assert props.to_s.size > 1000
30
+
31
+ end
32
+
33
+ def test_propfind_command_line
34
+ url = "https://vortex-dav.uio.no/brukere/thomasfl/"
35
+ out, err = props([url])
36
+ assert out.size > 10000
37
+ end
38
+
39
+
40
+ end
@@ -0,0 +1,132 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'test_helper'
3
+ require 'rubygems'
4
+ require 'davclient'
5
+ require 'davclient'
6
+ require 'davclient/davcli'
7
+ require 'test/unit'
8
+ require 'test/zentest_assertions'
9
+ require 'pathname'
10
+
11
+ class TestPutCLI < Test::Unit::TestCase
12
+
13
+ def put(*args)
14
+ out, err = util_capture do
15
+ PutCLI.put(*args)
16
+ end
17
+ return [out.string, err.string]
18
+ end
19
+
20
+ def create_file(filename, content)
21
+ File.open(filename, 'w') {|f| f.write(content) }
22
+ end
23
+
24
+ def setup
25
+ @basename = "put_test.html"
26
+ @filename = "/tmp/" + @basename
27
+ @url = "https://vortex-dav.uio.no/brukere/thomasfl/"
28
+ @html = "<html><head><title>Testfile</title></head><body><h1>Testfile</h1></body></html>"
29
+ create_file(@filename, @html)
30
+ WebDAV.delete(@url + @basename)
31
+ end
32
+
33
+ def teardown
34
+ File.delete(@filename)
35
+ end
36
+
37
+ def test_basic_put
38
+ # dav put /tmp/filename
39
+ WebDAV.delete(@url + @basename)
40
+ WebDAV.cd(@url)
41
+ out, err = put([@filename])
42
+ assert_equal @html, WebDAV.get(@url + @basename)
43
+
44
+ # dav put /tmp/filename http://url/collection/
45
+ WebDAV.delete(@url + @basename)
46
+ out, err = put([@filename,@url])
47
+ assert_equal @html, WebDAV.get(@url + @basename)
48
+
49
+ # dav put /tmp/filename http://url/collection/remote-filename
50
+ WebDAV.delete(@url + @basename)
51
+ out, err = put([@filename,@url + @basename])
52
+ assert_equal @html, WebDAV.get(@url + @basename)
53
+
54
+ # dav put filename
55
+ @local_testfile = "put_test.html"
56
+
57
+ path = Pathname.new( Dir.getwd())
58
+ @local_testfile = (path + @local_testfile).to_s
59
+ create_file(@local_testfile, @html)
60
+ WebDAV.delete(@url + @basename)
61
+ WebDAV.cd(@url)
62
+
63
+ out, err = put([@filename])
64
+ assert_equal @html, WebDAV.get(@url + @basename)
65
+
66
+ # dav put ./filename
67
+ @local_testfile = "put_test.html"
68
+ @local_testfile_basename = @local_testfile
69
+ path = Pathname.new( Dir.getwd())
70
+ @local_testfile = (path + @local_testfile).to_s
71
+ create_file(@local_testfile, @html)
72
+ WebDAV.delete(@url + @local_testfile_basename)
73
+ WebDAV.cd(@url)
74
+
75
+ out, err = put(["./" + @local_testfile_basename])
76
+ assert_equal @html, WebDAV.get(@url + @local_testfile_basename)
77
+ end
78
+
79
+ def test_put_multiple_files
80
+ # dav put filename1 filename2 filename3 filename4
81
+ filelist = []
82
+ for i in 1..4 do
83
+ filename = "put_test_" + i.to_s + ".html"
84
+ create_file(filename, @html)
85
+ WebDAV.delete(@url + filename )
86
+ filelist << filename
87
+ end
88
+
89
+ # PutCLI.put(filelist)
90
+ out, err = put(filelist)
91
+
92
+ for i in 1..4 do
93
+ filename = "put_test_" + i.to_s + ".html"
94
+ assert_equal @html, WebDAV.get(@url + filename)
95
+ end
96
+
97
+ end
98
+
99
+
100
+ def test_put_multiple_files_to_url
101
+ # dav put filename1 filename2 filename3 filename4 https://url.com/folder/
102
+
103
+ url = @url + "put_test/"
104
+ WebDAV.delete(url)
105
+ WebDAV.mkcol(url)
106
+
107
+ filelist = []
108
+ for i in 1..4 do
109
+ filename = "put_test_" + i.to_s + ".html"
110
+ create_file(filename, @html)
111
+ filelist << filename
112
+ end
113
+
114
+ filelist << url
115
+
116
+ out, err = put(filelist)
117
+
118
+ for i in 1..4 do
119
+ filename = "put_test_" + i.to_s + ".html"
120
+ assert_equal @html, WebDAV.get(url + filename)
121
+ end
122
+ end
123
+
124
+ def test_file_not_found
125
+
126
+ assert_raise RuntimeError do
127
+ PutCLI.put(["a_file_that_doesn_exists_for_sure"])
128
+ end
129
+
130
+ end
131
+
132
+ end