emergent-nicovideo 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +53 -0
- data/README.txt +37 -0
- data/Rakefile +30 -0
- data/config/hoe.rb +73 -0
- data/config/requirements.rb +17 -0
- data/lib/nicovideo/base.rb +154 -0
- data/lib/nicovideo/comments.rb +9 -0
- data/lib/nicovideo/mechanize-ext.rb +33 -0
- data/lib/nicovideo/mylist.rb +77 -0
- data/lib/nicovideo/newarrival.rb +34 -0
- data/lib/nicovideo/openlist.rb +96 -0
- data/lib/nicovideo/page.rb +92 -0
- data/lib/nicovideo/random.rb +38 -0
- data/lib/nicovideo/ranking.rb +36 -0
- data/lib/nicovideo/search.rb +100 -0
- data/lib/nicovideo/tagsearch.rb +13 -0
- data/lib/nicovideo/thumbnail.rb +68 -0
- data/lib/nicovideo/version.rb +9 -0
- data/lib/nicovideo/videopage.rb +113 -0
- data/lib/nicovideo.rb +20 -0
- data/sample/nv_download.rb +42 -0
- data/sample/nv_download2.rb +34 -0
- data/sample/nv_mylist.rb +37 -0
- data/sample/nv_openlist.rb +35 -0
- data/sample/nv_ranking.rb +21 -0
- data/test/runner.rb +3 -0
- data/test/test_helper.rb +2 -0
- data/test/test_login.rb +38 -0
- data/test/test_mylist.rb +92 -0
- data/test/test_newarrival.rb +31 -0
- data/test/test_nicovideo.rb +11 -0
- data/test/test_openlist.rb +108 -0
- data/test/test_random.rb +31 -0
- data/test/test_ranking.rb +31 -0
- data/test/test_search.rb +96 -0
- data/test/test_tagsearch.rb +65 -0
- data/test/test_thumbnail.rb +31 -0
- data/test/test_videopage.rb +108 -0
- metadata +121 -0
data/test/test_login.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestNicovideoLogin < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_login_OK
|
9
|
+
valid_account = YAML.load_file(ENV['HOME'] + '/.nicovideo/account.yml')
|
10
|
+
nv = Nicovideo.new(valid_account['mail'], valid_account['password'])
|
11
|
+
|
12
|
+
assert_nothing_raised { nv.login }
|
13
|
+
|
14
|
+
sleep 1
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_login_NG
|
18
|
+
invalid_account = {'mail' => 'invalid@account.com', 'password' => 'invalid' }
|
19
|
+
nv = Nicovideo.new(invalid_account['mail'], invalid_account['password'])
|
20
|
+
|
21
|
+
assert_raise(Nicovideo::LoginError) {
|
22
|
+
nv.login
|
23
|
+
}
|
24
|
+
|
25
|
+
sleep 1
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_auto_login
|
29
|
+
valid_account = YAML.load_file(ENV['HOME'] + '/.nicovideo/account.yml')
|
30
|
+
nv = Nicovideo.new(valid_account['mail'], valid_account['password'])
|
31
|
+
|
32
|
+
assert_nothing_raised {
|
33
|
+
nv.watch('sm500873') {|v|
|
34
|
+
puts v.title
|
35
|
+
}
|
36
|
+
}
|
37
|
+
end
|
38
|
+
end
|
data/test/test_mylist.rb
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestNicovideoMyList < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
account = YAML.load_file(ENV['HOME'] + '/.nicovideo/account.yml')
|
7
|
+
@nv = Nicovideo.new(account['mail'], account['password'])
|
8
|
+
@nv.login
|
9
|
+
|
10
|
+
@mid_valid = '3982404' # 公開マイリスト
|
11
|
+
@mid_invalid = 'smfdsaf' # IDが間違っている
|
12
|
+
@mid_notopened = '3825220' # 非公開
|
13
|
+
@mid_testers_own = '12149071' # テスト用アカウントに登録されているマイリストのID
|
14
|
+
|
15
|
+
@vid_valid = 'sm2407057' # 閲覧可能(短い動画)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_mylist_valid
|
19
|
+
ml = nil
|
20
|
+
assert_nothing_raised {
|
21
|
+
ml = @nv.mylist(@mid_valid)
|
22
|
+
}
|
23
|
+
assert_instance_of(Nicovideo::MyList, ml)
|
24
|
+
puts ml.id
|
25
|
+
puts ml.url
|
26
|
+
puts ml.title
|
27
|
+
puts ml.description
|
28
|
+
puts ml.videos.size
|
29
|
+
ml.videos.each {|v|
|
30
|
+
puts v.id + ' ' + v.title
|
31
|
+
}
|
32
|
+
assert_equal(@mid_valid, ml.id)
|
33
|
+
assert_equal("http://www.nicovideo.jp/mylist/"+@mid_valid, ml.url)
|
34
|
+
assert_instance_of(String, ml.title)
|
35
|
+
assert_instance_of(String, ml.description)
|
36
|
+
assert_instance_of(Array, ml.videos)
|
37
|
+
|
38
|
+
ml.title = "test"
|
39
|
+
assert_equal("test", ml.title)
|
40
|
+
|
41
|
+
sleep 5
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_mylist_invalid
|
45
|
+
ml = nil
|
46
|
+
assert_nothing_raised {
|
47
|
+
ml = @nv.mylist(@mid_invalid)
|
48
|
+
}
|
49
|
+
|
50
|
+
assert_equal(@mid_invalid, ml.id)
|
51
|
+
assert_equal("http://www.nicovideo.jp/mylist/"+@mid_invalid, ml.url)
|
52
|
+
|
53
|
+
assert_raise(Nicovideo::NotFound) { ml.title }
|
54
|
+
assert_raise(Nicovideo::NotFound) { ml.description }
|
55
|
+
assert_raise(Nicovideo::NotFound) { ml.videos }
|
56
|
+
|
57
|
+
sleep 5
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_mylist_notopened
|
61
|
+
ml = nil
|
62
|
+
assert_nothing_raised {
|
63
|
+
ml = @nv.mylist(@mid_notopened)
|
64
|
+
}
|
65
|
+
|
66
|
+
assert_equal(@mid_notopened, ml.id)
|
67
|
+
assert_equal("http://www.nicovideo.jp/mylist/"+@mid_notopened, ml.url)
|
68
|
+
|
69
|
+
assert_raise(Nicovideo::Forbidden) { ml.title }
|
70
|
+
assert_raise(Nicovideo::Forbidden) { ml.description }
|
71
|
+
assert_raise(Nicovideo::Forbidden) { ml.videos }
|
72
|
+
|
73
|
+
sleep 5
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_add
|
77
|
+
ml = nil
|
78
|
+
assert_nothing_raised {
|
79
|
+
ml = @nv.mylist(@mid_testers_own)
|
80
|
+
}
|
81
|
+
|
82
|
+
# FIXME removing video function is NOT implemented,
|
83
|
+
# so you MUST remove video from mylist before test.
|
84
|
+
assert_nothing_raised {
|
85
|
+
ml.add @vid_valid
|
86
|
+
}
|
87
|
+
|
88
|
+
assert_equal(@vid_valid, ml.videos.last.video_id)
|
89
|
+
|
90
|
+
sleep 5
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestNicovideoNewarrival < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
account = YAML.load_file(ENV['HOME'] + '/.nicovideo/account.yml')
|
7
|
+
@nv = Nicovideo.new(account['mail'], account['password'])
|
8
|
+
@nv.login
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_ranking_valid
|
12
|
+
rv = nil
|
13
|
+
assert_nothing_raised {
|
14
|
+
rv = @nv.newarrival
|
15
|
+
}
|
16
|
+
|
17
|
+
rv.each {|v|
|
18
|
+
# puts v.id + ':' + v.published_at.to_s + ':' + v.title
|
19
|
+
puts v.id + ':' + v.title
|
20
|
+
# sleep 1
|
21
|
+
}
|
22
|
+
|
23
|
+
sleep 1
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_ranking_invalid
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_ranking_notopened
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestNicovideoOpenList < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
account = YAML.load_file(ENV['HOME'] + '/.nicovideo/account.yml')
|
7
|
+
@nv = Nicovideo.new(account['mail'], account['password'])
|
8
|
+
@nv.login
|
9
|
+
|
10
|
+
@vid_valid = 'sm500873' # 公開マイリストが存在(単一ページ)
|
11
|
+
@vid_valid2 = 'sm500873' # 公開マイリストが存在(複数ページ)
|
12
|
+
@vid_invalid = 'smfdsafd' # IDがおかしい(動画が存在しない)
|
13
|
+
@vid_notfound = 'sm500875' # 公開マイリストが存在しない
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_openlist_testing
|
17
|
+
result = @nv.openlist("sm500873")
|
18
|
+
result.each {|v|
|
19
|
+
puts v.title
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_openlist_valid
|
24
|
+
ol = nil
|
25
|
+
assert_nothing_raised {
|
26
|
+
ol = @nv.openlist(@vid_valid)
|
27
|
+
}
|
28
|
+
assert_instance_of(Nicovideo::OpenList, ol)
|
29
|
+
assert_instance_of(Array, ol.mylists)
|
30
|
+
assert_instance_of(Array, ol.to_a)
|
31
|
+
assert_instance_of(Fixnum, ol.total_size)
|
32
|
+
assert_instance_of(Fixnum, ol.pagenum)
|
33
|
+
assert(ol.has_next?)
|
34
|
+
assert(!ol.has_prev?)
|
35
|
+
|
36
|
+
assert_nothing_raised {
|
37
|
+
ol.pagenum = 2
|
38
|
+
}
|
39
|
+
|
40
|
+
assert_equal(ol.pagenum, 2)
|
41
|
+
assert(ol.has_next?)
|
42
|
+
assert(ol.has_prev?)
|
43
|
+
|
44
|
+
assert_nothing_raised {
|
45
|
+
ol.next
|
46
|
+
}
|
47
|
+
|
48
|
+
assert_equal(ol.pagenum, 3)
|
49
|
+
|
50
|
+
sleep 1
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_openlist_valid2
|
54
|
+
ol = nil
|
55
|
+
|
56
|
+
assert_nothing_raised {
|
57
|
+
@nv.watch(@vid_valid) {|v|
|
58
|
+
ol = v.openlist
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
assert_instance_of(Nicovideo::OpenList, ol)
|
63
|
+
assert_instance_of(Array, ol.mylists)
|
64
|
+
assert_instance_of(Array, ol.to_a)
|
65
|
+
assert_instance_of(Fixnum, ol.total_size)
|
66
|
+
assert_instance_of(Fixnum, ol.pagenum)
|
67
|
+
assert(ol.has_next?)
|
68
|
+
assert(!ol.has_prev?)
|
69
|
+
|
70
|
+
sleep 1
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_openlist_invalid
|
74
|
+
ol = nil
|
75
|
+
assert_nothing_raised {
|
76
|
+
ol = @nv.openlist(@vid_invalid)
|
77
|
+
}
|
78
|
+
|
79
|
+
assert_instance_of(Nicovideo::OpenList, ol)
|
80
|
+
assert_raise(Nicovideo::NotFound) { ol.mylists }
|
81
|
+
assert_raise(Nicovideo::NotFound) { ol.to_a }
|
82
|
+
assert_raise(Nicovideo::NotFound) { ol.total_size }
|
83
|
+
assert_raise(Nicovideo::NotFound) { ol.has_next? }
|
84
|
+
assert_raise(Nicovideo::NotFound) { ol.has_prev? }
|
85
|
+
assert_raise(Nicovideo::NotFound) { ol.next }
|
86
|
+
assert_raise(Nicovideo::NotFound) { ol.prev }
|
87
|
+
|
88
|
+
sleep 1
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_openlist_notfound
|
92
|
+
ol = nil
|
93
|
+
assert_nothing_raised {
|
94
|
+
ol = @nv.openlist(@vid_notfound)
|
95
|
+
}
|
96
|
+
|
97
|
+
assert_instance_of(Nicovideo::OpenList, ol)
|
98
|
+
assert_raise(Nicovideo::NotFound) { ol.mylists }
|
99
|
+
assert_raise(Nicovideo::NotFound) { ol.to_a }
|
100
|
+
assert_raise(Nicovideo::NotFound) { ol.total_size }
|
101
|
+
assert_raise(Nicovideo::NotFound) { ol.has_next? }
|
102
|
+
assert_raise(Nicovideo::NotFound) { ol.has_prev? }
|
103
|
+
assert_raise(Nicovideo::NotFound) { ol.next }
|
104
|
+
assert_raise(Nicovideo::NotFound) { ol.prev }
|
105
|
+
|
106
|
+
sleep 1
|
107
|
+
end
|
108
|
+
end
|
data/test/test_random.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestNicovideoRandom < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
account = YAML.load_file(ENV['HOME'] + '/.nicovideo/account.yml')
|
7
|
+
@nv = Nicovideo.new(account['mail'], account['password'])
|
8
|
+
@nv.login
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_ranking_valid
|
12
|
+
rv = nil
|
13
|
+
assert_nothing_raised {
|
14
|
+
rv = @nv.random
|
15
|
+
}
|
16
|
+
|
17
|
+
rv.each {|v|
|
18
|
+
# puts v.id + ':' + v.published_at.to_s + ':' + v.title
|
19
|
+
puts v.id + ':' + v.title
|
20
|
+
# sleep 1
|
21
|
+
}
|
22
|
+
|
23
|
+
sleep 1
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_ranking_invalid
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_ranking_notopened
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestNicovideoRanking < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
account = YAML.load_file(ENV['HOME'] + '/.nicovideo/account.yml')
|
7
|
+
@nv = Nicovideo.new(account['mail'], account['password'])
|
8
|
+
@nv.login
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_ranking_valid
|
12
|
+
rv = nil
|
13
|
+
assert_nothing_raised {
|
14
|
+
rv = @nv.ranking
|
15
|
+
}
|
16
|
+
|
17
|
+
rv.each {|v|
|
18
|
+
# puts v.id + ':' + v.published_at.to_s + ':' + v.title
|
19
|
+
puts v.id + ':' + v.title
|
20
|
+
sleep 1
|
21
|
+
}
|
22
|
+
|
23
|
+
sleep 1
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_ranking_invalid
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_ranking_notopened
|
30
|
+
end
|
31
|
+
end
|
data/test/test_search.rb
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestNicovideoSearch < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
account = YAML.load_file(ENV['HOME'] + '/.nicovideo/account.yml')
|
7
|
+
@nv = Nicovideo.new(account['mail'], account['password'])
|
8
|
+
@nv.login
|
9
|
+
end
|
10
|
+
|
11
|
+
def output_results result
|
12
|
+
puts result.total_size
|
13
|
+
result.each {|v|
|
14
|
+
puts v.id + ':' + v.title
|
15
|
+
}
|
16
|
+
end
|
17
|
+
=begin
|
18
|
+
def test_search_testing0
|
19
|
+
result = @nv.search("aaa")
|
20
|
+
output_results result
|
21
|
+
sleep 3
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_search_testing1
|
25
|
+
result = @nv.search("ミク")
|
26
|
+
output_results result
|
27
|
+
sleep 3
|
28
|
+
end
|
29
|
+
=end
|
30
|
+
|
31
|
+
def test_search_next
|
32
|
+
result = @nv.search("ミク", 'n')
|
33
|
+
output_results result
|
34
|
+
i = 1
|
35
|
+
sleep 5
|
36
|
+
while result.has_next? && i < 5
|
37
|
+
output_results result.next
|
38
|
+
i += 1
|
39
|
+
sleep 5
|
40
|
+
end
|
41
|
+
|
42
|
+
sleep 3
|
43
|
+
end
|
44
|
+
def test_search_prev
|
45
|
+
result = @nv.search("ミク", 'n', nil, 5)
|
46
|
+
output_results result
|
47
|
+
i = 5
|
48
|
+
sleep 5
|
49
|
+
while result.has_prev? && i > 0
|
50
|
+
output_results result.prev
|
51
|
+
i -= 1
|
52
|
+
sleep 5
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
=begin
|
57
|
+
def test_search_testing2
|
58
|
+
result = @nv.search("ミク", 'n')
|
59
|
+
puts result.total_size
|
60
|
+
result.each { |v|
|
61
|
+
puts v.title
|
62
|
+
}
|
63
|
+
sleep 3
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_search_testing3
|
67
|
+
result = @nv.search("ミク", 'n', 'd')
|
68
|
+
puts result.total_size
|
69
|
+
result.each {|v|
|
70
|
+
puts v.title
|
71
|
+
}
|
72
|
+
sleep 3
|
73
|
+
end
|
74
|
+
=end
|
75
|
+
=begin
|
76
|
+
def test_search_valid
|
77
|
+
rv = nil
|
78
|
+
assert_nothing_raised {
|
79
|
+
rv = @nv.ranking
|
80
|
+
}
|
81
|
+
|
82
|
+
rv.each {|v|
|
83
|
+
puts v.id + ':' + v.published_at.to_s + ':' + v.title
|
84
|
+
sleep 1
|
85
|
+
}
|
86
|
+
|
87
|
+
sleep 1
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_search_invalid
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_search_notopened
|
94
|
+
end
|
95
|
+
=end
|
96
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestNicovideoTagSearch < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
account = YAML.load_file(ENV['HOME'] + '/.nicovideo/account.yml')
|
7
|
+
@nv = Nicovideo.new(account['mail'], account['password'])
|
8
|
+
@nv.login
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_tagsearch_testing0
|
12
|
+
result = @nv.tagsearch("aaa")
|
13
|
+
puts result.total_size
|
14
|
+
result.each {|v|
|
15
|
+
puts v.title
|
16
|
+
}
|
17
|
+
sleep 1
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_tagsearch_testing1
|
21
|
+
result = @nv.tagsearch("ミク")
|
22
|
+
result.each {|v|
|
23
|
+
puts v.title
|
24
|
+
}
|
25
|
+
sleep 1
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_tagsearch_testing1
|
29
|
+
result = @nv.tagsearch("ミク", 'v', 'a')
|
30
|
+
result.each {|v|
|
31
|
+
puts v.title
|
32
|
+
}
|
33
|
+
sleep 1
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_search_testing2
|
37
|
+
result = @nv.tagsearch("ミク", 'n')
|
38
|
+
result.each {|v|
|
39
|
+
puts v.title
|
40
|
+
}
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
=begin
|
45
|
+
def test_search_valid
|
46
|
+
rv = nil
|
47
|
+
assert_nothing_raised {
|
48
|
+
rv = @nv.ranking
|
49
|
+
}
|
50
|
+
|
51
|
+
rv.each {|v|
|
52
|
+
puts v.id + ':' + v.published_at.to_s + ':' + v.title
|
53
|
+
sleep 1
|
54
|
+
}
|
55
|
+
|
56
|
+
sleep 1
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_search_invalid
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_search_notopened
|
63
|
+
end
|
64
|
+
=end
|
65
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
require 'kagemusha'
|
3
|
+
require 'open-uri'
|
4
|
+
|
5
|
+
class Test_Thumbnail < Test::Unit::TestCase
|
6
|
+
def setup
|
7
|
+
@client = Nicovideo::Thumbnail.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_get
|
11
|
+
thumbnail = @client.get("sm2424611")
|
12
|
+
assert("sm2424611", thumbnail["video_id"])
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_get_nonexistent_video
|
16
|
+
assert_raise(::Errno::ENOENT) {
|
17
|
+
@client.get "sm1"
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_get_timeout
|
22
|
+
Kagemusha.new(Kernel) do |m|
|
23
|
+
m.def(:open) { sleep 30 }
|
24
|
+
m.swap {
|
25
|
+
assert_raise(TimeoutError) {
|
26
|
+
@client.get("sm2424611")
|
27
|
+
}
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestNicovideoVideoPage < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
account = YAML.load_file(ENV['HOME'] + '/.nicovideo/account.yml')
|
7
|
+
@nv = Nicovideo.new(account['mail'], account['password'])
|
8
|
+
@nv.login
|
9
|
+
|
10
|
+
# @vid_valid = 'sm500873' # 閲覧可能(組曲)
|
11
|
+
@vid_valid = 'sm2407057' # 閲覧可能(短い動画)
|
12
|
+
@vid_invalid = 'smfdsafd' # IDが間違っている
|
13
|
+
@vid_notfound = 'sm500875' # 削除済み
|
14
|
+
end
|
15
|
+
|
16
|
+
# TODO: add test cases of openlist and mylist
|
17
|
+
def test_watch_ikinari
|
18
|
+
vp = nil
|
19
|
+
assert_nothing_raised {
|
20
|
+
vp = @nv.watch(@vid_valid)
|
21
|
+
}
|
22
|
+
assert_nothing_raised { vp.flv }
|
23
|
+
sleep 5
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_type
|
27
|
+
vp = @nv.watch(@vid_valid) {|vp|
|
28
|
+
assert_instance_of(String, vp.type)
|
29
|
+
puts vp.type
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_watch_valid
|
34
|
+
vp = nil
|
35
|
+
assert_nothing_raised {
|
36
|
+
vp = @nv.watch(@vid_valid)
|
37
|
+
}
|
38
|
+
assert_instance_of(Nicovideo::VideoPage, vp)
|
39
|
+
assert_instance_of(Array, vp.tags)
|
40
|
+
assert_instance_of(String, vp.title)
|
41
|
+
assert_instance_of(Time, vp.published_at)
|
42
|
+
assert_instance_of(Nicovideo::Comments, vp.comments)
|
43
|
+
assert_instance_of(String, vp.csrf_token)
|
44
|
+
|
45
|
+
puts vp.tags
|
46
|
+
puts vp.title
|
47
|
+
puts vp.published_at
|
48
|
+
puts vp.csrf_token
|
49
|
+
# assert_nothing_raised { vp.flv }
|
50
|
+
#assert_instance_of(String, vp.flv)
|
51
|
+
#assert_instance_of(String, vp.video)
|
52
|
+
# File.open("#{@vid_valid}.flv", "wb") {|f| f.write vp.flv }
|
53
|
+
|
54
|
+
sleep 1
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_watch_valid2
|
58
|
+
vp = nil
|
59
|
+
assert_nothing_raised {
|
60
|
+
@nv.watch(@vid_valid) {|v|
|
61
|
+
assert_instance_of(Nicovideo::VideoPage, v)
|
62
|
+
assert_instance_of(Array, v.tags)
|
63
|
+
assert_instance_of(String, v.title)
|
64
|
+
assert_instance_of(Nicovideo::Comments, v.comments)
|
65
|
+
assert_instance_of(String, v.csrf_token)
|
66
|
+
# assert_instance_of(String, v.flv)
|
67
|
+
# assert_instance_of(String, v.video)
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
sleep 1
|
72
|
+
end
|
73
|
+
|
74
|
+
# watchは、VideoPageインスタンスを返すのみなので例外発生なし
|
75
|
+
# VideoPageインスタンスのメソッドを実行したときに例外発生
|
76
|
+
def test_watch_invalid
|
77
|
+
vp = nil
|
78
|
+
assert_nothing_raised {
|
79
|
+
vp = @nv.watch(@vid_invalid)
|
80
|
+
}
|
81
|
+
assert_instance_of(Nicovideo::VideoPage, vp)
|
82
|
+
assert_raise(Nicovideo::NotFound) { vp.tags }
|
83
|
+
assert_raise(Nicovideo::NotFound) { vp.title }
|
84
|
+
assert_raise(Nicovideo::NotFound) { vp.comments }
|
85
|
+
assert_raise(Nicovideo::NotFound) { vp.flv }
|
86
|
+
assert_raise(Nicovideo::NotFound) { vp.video }
|
87
|
+
assert_raise(Nicovideo::NotFound) { vp.csrf_token }
|
88
|
+
|
89
|
+
sleep 1
|
90
|
+
end
|
91
|
+
|
92
|
+
# watchは、VideoPageインスタンスを返すのみなので例外発生なし
|
93
|
+
def test_watch_notfound
|
94
|
+
vp = nil
|
95
|
+
assert_nothing_raised {
|
96
|
+
vp = @nv.watch(@vid_notfound)
|
97
|
+
}
|
98
|
+
assert_instance_of(Nicovideo::VideoPage, vp)
|
99
|
+
assert_raise(Nicovideo::NotFound) { vp.tags }
|
100
|
+
assert_raise(Nicovideo::NotFound) { vp.title }
|
101
|
+
assert_raise(Nicovideo::NotFound) { vp.comments }
|
102
|
+
assert_raise(Nicovideo::NotFound) { vp.flv }
|
103
|
+
assert_raise(Nicovideo::NotFound) { vp.video }
|
104
|
+
assert_raise(Nicovideo::NotFound) { vp.csrf_token }
|
105
|
+
|
106
|
+
sleep 1
|
107
|
+
end
|
108
|
+
end
|