ruby-traileraddict 0.0.1
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/.gitignore +1 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +20 -0
- data/Rakefile +44 -0
- data/VERSION +1 -0
- data/lib/ruby-traileraddict.rb +6 -0
- data/lib/ruby-traileraddict/traileraddict.rb +65 -0
- data/test/fixtures/api_response.txt +26 -0
- data/test/fixtures/example_com.txt +25 -0
- data/test/fixtures/search.txt +1161 -0
- data/test/setup/test_unit_extensions.rb +21 -0
- data/test/setup/url_mocks.rb +19 -0
- data/test/test_helper.rb +17 -0
- data/test/unit/trailer_addict_test.rb +70 -0
- metadata +113 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
module Test::Unit
|
2
|
+
# Used to fix a minor minitest/unit incompatibility in flexmock
|
3
|
+
AssertionFailedError = Class.new(StandardError)
|
4
|
+
|
5
|
+
class TestCase
|
6
|
+
|
7
|
+
def self.test(name, &block)
|
8
|
+
test_name = "test_#{name.gsub(/\s+/,'_')}".to_sym
|
9
|
+
defined = instance_method(test_name) rescue false
|
10
|
+
raise "#{test_name} is already defined in #{self}" if defined
|
11
|
+
if block_given?
|
12
|
+
define_method(test_name, &block)
|
13
|
+
else
|
14
|
+
define_method(test_name) do
|
15
|
+
flunk "No implementation provided for #{name}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
def register_url_stubs
|
2
|
+
unless(TEST_LIVE_API)
|
3
|
+
|
4
|
+
File.open(File.join(File.dirname(__FILE__), "..", "fixtures", "search.txt")) do |file|
|
5
|
+
stub_request(:get, Regexp.new("http:\/\/www.traileraddict.com/search.*")).to_return(file)
|
6
|
+
end
|
7
|
+
|
8
|
+
File.open(File.join(File.dirname(__FILE__), "..", "fixtures", "api_response.txt")) do |file|
|
9
|
+
stub_request(:get, Regexp.new(TrailerAddict.base_api_url + ".*")).to_return(file)
|
10
|
+
end
|
11
|
+
|
12
|
+
File.open(File.join(File.dirname(__FILE__), "..", "fixtures", "example_com.txt")) do |file|
|
13
|
+
stub_request(:get, Regexp.new("http://example.com.*")).to_return(file)
|
14
|
+
end
|
15
|
+
|
16
|
+
stub_request(:get, 'http://thisisaurlthatdoesntexist.co.nz').to_return(:body => "", :status => 404, :headers => {'content-length' => 0})
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
TEST_LIVE_API = false
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'test/unit'
|
5
|
+
|
6
|
+
unless(TEST_LIVE_API)
|
7
|
+
require 'webmock/test_unit'
|
8
|
+
include WebMock
|
9
|
+
end
|
10
|
+
|
11
|
+
require_files = []
|
12
|
+
require_files << File.join(File.dirname(__FILE__), '..', 'lib', 'ruby-traileraddict.rb')
|
13
|
+
require_files.concat Dir[File.join(File.dirname(__FILE__), 'setup', '*.rb')]
|
14
|
+
|
15
|
+
require_files.each do |file|
|
16
|
+
require File.expand_path(file)
|
17
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'test_helper.rb'))
|
2
|
+
|
3
|
+
class TrailerAddictTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
register_url_stubs
|
7
|
+
end
|
8
|
+
|
9
|
+
test "should return base API url" do
|
10
|
+
assert_equal "http://api.traileraddict.com/", TrailerAddict.base_api_url
|
11
|
+
end
|
12
|
+
|
13
|
+
test "should return base search URL" do
|
14
|
+
assert_equal "http://www.traileraddict.com/search.php?q=", TrailerAddict.base_search_url
|
15
|
+
end
|
16
|
+
|
17
|
+
test "get_tag_for should raise ArgumentError if searchterm is not provided" do
|
18
|
+
assert_raises ArgumentError do
|
19
|
+
TrailerAddict.get_tag_for
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
test "get_tag_for should return tag for movie" do
|
24
|
+
assert_equal 'iron-man', TrailerAddict.get_tag_for("Iron Man")
|
25
|
+
end
|
26
|
+
|
27
|
+
test "api_call should raise ArgumentError if movie tag is not specified" do
|
28
|
+
assert_raises ArgumentError do
|
29
|
+
TrailerAddict.api_call
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
test "api_call should raise ArgumentError if movie tag is not a string" do
|
34
|
+
assert_raises ArgumentError do
|
35
|
+
TrailerAddict.api_call(1)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
test "api_call should return response body" do
|
40
|
+
File.open(File.join(File.dirname(__FILE__), "..", "fixtures", "api_response.txt")) do |file|
|
41
|
+
expected_response = file.read
|
42
|
+
assert expected_response.include?(TrailerAddict.api_call("iron-man"))
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
test "get_trailer_embed_code should raise ArgumentError if movie title not supplied" do
|
47
|
+
assert_raises ArgumentError do
|
48
|
+
TrailerAddict.get_trailer_embed_code
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
test "get_trailer_embed_code should return embed code" do
|
53
|
+
embed_code = TrailerAddict.get_trailer_embed_code("Iron Man")
|
54
|
+
assert embed_code.include?("<embed")
|
55
|
+
assert embed_code.include?("<object")
|
56
|
+
assert embed_code.include?("</object>")
|
57
|
+
assert embed_code.include?("</embed>")
|
58
|
+
end
|
59
|
+
|
60
|
+
test "get url returns a response object" do
|
61
|
+
test_response = TrailerAddict.get_url("http://example.com/")
|
62
|
+
assert_equal 200, test_response.code.to_i
|
63
|
+
end
|
64
|
+
|
65
|
+
test "getting nonexistent URL returns response object" do
|
66
|
+
test_response = TrailerAddict.get_url('http://thisisaurlthatdoesntexist.co.nz')
|
67
|
+
assert_equal 404, test_response.code.to_i
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
metadata
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ruby-traileraddict
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Aaron Gough
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-05-26 00:00:00 -04:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: hpricot
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: webmock
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id002
|
49
|
+
description: A simple API wrapper for TrailerAddict.com
|
50
|
+
email: aaron@aarongough.com
|
51
|
+
executables: []
|
52
|
+
|
53
|
+
extensions: []
|
54
|
+
|
55
|
+
extra_rdoc_files:
|
56
|
+
- MIT-LICENSE
|
57
|
+
- README.rdoc
|
58
|
+
files:
|
59
|
+
- .gitignore
|
60
|
+
- MIT-LICENSE
|
61
|
+
- README.rdoc
|
62
|
+
- Rakefile
|
63
|
+
- VERSION
|
64
|
+
- lib/ruby-traileraddict.rb
|
65
|
+
- lib/ruby-traileraddict/traileraddict.rb
|
66
|
+
- test/fixtures/api_response.txt
|
67
|
+
- test/fixtures/example_com.txt
|
68
|
+
- test/fixtures/search.txt
|
69
|
+
- test/setup/test_unit_extensions.rb
|
70
|
+
- test/setup/url_mocks.rb
|
71
|
+
- test/test_helper.rb
|
72
|
+
- test/unit/trailer_addict_test.rb
|
73
|
+
has_rdoc: true
|
74
|
+
homepage: https://github.com/aarongough/ruby-traileraddict
|
75
|
+
licenses: []
|
76
|
+
|
77
|
+
post_install_message:
|
78
|
+
rdoc_options:
|
79
|
+
- --charset=UTF-8
|
80
|
+
- --line-numbers
|
81
|
+
- --inline-source
|
82
|
+
require_paths:
|
83
|
+
- lib
|
84
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
hash: 3
|
90
|
+
segments:
|
91
|
+
- 0
|
92
|
+
version: "0"
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
hash: 3
|
99
|
+
segments:
|
100
|
+
- 0
|
101
|
+
version: "0"
|
102
|
+
requirements: []
|
103
|
+
|
104
|
+
rubyforge_project:
|
105
|
+
rubygems_version: 1.3.7
|
106
|
+
signing_key:
|
107
|
+
specification_version: 3
|
108
|
+
summary: A simple API wrapper for TrailerAddict.com
|
109
|
+
test_files:
|
110
|
+
- test/setup/test_unit_extensions.rb
|
111
|
+
- test/setup/url_mocks.rb
|
112
|
+
- test/test_helper.rb
|
113
|
+
- test/unit/trailer_addict_test.rb
|