ape 1.0.0
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 +1 -0
- data/LICENSE +19 -0
- data/Manifest +45 -0
- data/README +12 -0
- data/ape.gemspec +57 -0
- data/bin/ape_server +28 -0
- data/lib/ape.rb +982 -0
- data/lib/ape/atomURI.rb +73 -0
- data/lib/ape/auth/google_login_credentials.rb +96 -0
- data/lib/ape/auth/wsse_credentials.rb +25 -0
- data/lib/ape/authent.rb +42 -0
- data/lib/ape/categories.rb +95 -0
- data/lib/ape/collection.rb +51 -0
- data/lib/ape/crumbs.rb +39 -0
- data/lib/ape/entry.rb +151 -0
- data/lib/ape/escaper.rb +29 -0
- data/lib/ape/feed.rb +117 -0
- data/lib/ape/handler.rb +34 -0
- data/lib/ape/html.rb +17 -0
- data/lib/ape/invoker.rb +54 -0
- data/lib/ape/invokers/deleter.rb +31 -0
- data/lib/ape/invokers/getter.rb +80 -0
- data/lib/ape/invokers/poster.rb +57 -0
- data/lib/ape/invokers/putter.rb +46 -0
- data/lib/ape/layout/ape.css +56 -0
- data/lib/ape/layout/ape_logo.png +0 -0
- data/lib/ape/layout/index.html +54 -0
- data/lib/ape/layout/info.png +0 -0
- data/lib/ape/names.rb +24 -0
- data/lib/ape/print_writer.rb +21 -0
- data/lib/ape/samples.rb +180 -0
- data/lib/ape/samples/atom_schema.txt +338 -0
- data/lib/ape/samples/basic_entry.eruby +16 -0
- data/lib/ape/samples/categories_schema.txt +69 -0
- data/lib/ape/samples/mini_entry.eruby +8 -0
- data/lib/ape/samples/service_schema.txt +187 -0
- data/lib/ape/samples/unclean_xhtml_entry.eruby +21 -0
- data/lib/ape/server.rb +32 -0
- data/lib/ape/service.rb +12 -0
- data/lib/ape/validator.rb +65 -0
- data/lib/ape/version.rb +9 -0
- data/scripts/go.rb +29 -0
- data/test/test_helper.rb +17 -0
- data/test/unit/authent_test.rb +35 -0
- data/test/unit/invoker_test.rb +25 -0
- data/test/unit/samples_test.rb +36 -0
- metadata +111 -0
data/test/test_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
$:.unshift File.dirname(__FILE__) + '/../lib'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'ape'
|
4
|
+
|
5
|
+
def load_test_dir(dir)
|
6
|
+
Dir[File.join(File.dirname(__FILE__), dir, "*.rb")].each do |file|
|
7
|
+
require file
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
module Writer
|
12
|
+
def response=(response)
|
13
|
+
@response = response
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
Ape::Invoker.send(:include, Writer)
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper.rb'
|
2
|
+
|
3
|
+
class AuthentTest < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@authent = Ape::Authent.new('david', 'my secret password')
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_assert_raise_auth_error
|
9
|
+
assert_raise(Ape::AuthenticationError) { load_plugin("Oauth") }
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_assert_load_wsse_plugin
|
13
|
+
assert_not_nil(load_plugin("Wsse"))
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_assert_load_google_login_plugin
|
17
|
+
assert_not_nil(load_plugin("GoogleLogin"))
|
18
|
+
end
|
19
|
+
|
20
|
+
#def test_assert_add_google_login_credentials_not_fail
|
21
|
+
# @authent.add_to(Net::HTTP::Get.new('/'), 'GoogleLogin')
|
22
|
+
#end
|
23
|
+
|
24
|
+
def test_assert_add_wsse_credentials_not_fail
|
25
|
+
assert_nothing_raised(Exception) {
|
26
|
+
@authent.add_to(Net::HTTP::Get.new('/'), 'Wsse')
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
def load_plugin(plugin_name)
|
31
|
+
@authent.resolve_plugin(plugin_name)
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper.rb'
|
2
|
+
|
3
|
+
class InvokerTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@invoker = Ape::Invoker.new("http://localhost", Ape::Authent.new('david', 'mypassword'))
|
7
|
+
unauthorized = Net::HTTPUnauthorized.new(401, '1.1', '')
|
8
|
+
unauthorized['WWW-Authenticate'] = 'Wsse'
|
9
|
+
@invoker.response = unauthorized
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_assert_need_athentication_avoids_infinite_loops
|
13
|
+
(1..5).each do |x|
|
14
|
+
if x > 2
|
15
|
+
assert_raise(Ape::AuthenticationError) {
|
16
|
+
@invoker.need_authentication?(Net::HTTP::Get.new('/'))
|
17
|
+
}
|
18
|
+
else
|
19
|
+
assert_nothing_raised(Ape::AuthenticationError) {
|
20
|
+
@invoker.need_authentication?(Net::HTTP::Get.new('/'))
|
21
|
+
}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper.rb'
|
2
|
+
|
3
|
+
require 'rexml/document'
|
4
|
+
class SamplesTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def test_ape_home
|
7
|
+
assert_equal('/Users/david/.ape', Ape::Samples.home)
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_load_service_schema
|
11
|
+
assert_not_nil(Ape::Samples.service_RNC)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_load_categories_schema
|
15
|
+
assert_not_nil(Ape::Samples.categories_RNC)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_load_atom_schema
|
19
|
+
assert_not_nil(Ape::Samples.atom_RNC)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_load_mini_entry
|
23
|
+
doc = REXML::Document.new(Ape::Samples.mini_entry)
|
24
|
+
assert_not_nil(REXML::XPath.first(doc.root, './id'))
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_load_basic_entry
|
28
|
+
doc = REXML::Document.new(Ape::Samples.basic_entry)
|
29
|
+
assert_not_nil(REXML::XPath.first(doc.root, './summary'))
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_load_unclean_xhtml_entry
|
33
|
+
doc = REXML::Document.new(Ape::Samples.unclean_xhtml_entry)
|
34
|
+
assert_not_nil(REXML::XPath.first(doc.root, './id'))
|
35
|
+
end
|
36
|
+
end
|
metadata
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ape
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tim Bray
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-02-22 00:00:00 +01:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: builder
|
17
|
+
version_requirement:
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: "0"
|
23
|
+
- - "="
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: 2.1.2
|
26
|
+
version:
|
27
|
+
description: A tool to exercice AtomPub server.
|
28
|
+
email: tim.bray@sun.com
|
29
|
+
executables:
|
30
|
+
- ape_server
|
31
|
+
extensions: []
|
32
|
+
|
33
|
+
extra_rdoc_files: []
|
34
|
+
|
35
|
+
files:
|
36
|
+
- bin/ape_server
|
37
|
+
- CHANGELOG
|
38
|
+
- lib/ape/atomURI.rb
|
39
|
+
- lib/ape/auth/google_login_credentials.rb
|
40
|
+
- lib/ape/auth/wsse_credentials.rb
|
41
|
+
- lib/ape/authent.rb
|
42
|
+
- lib/ape/categories.rb
|
43
|
+
- lib/ape/collection.rb
|
44
|
+
- lib/ape/crumbs.rb
|
45
|
+
- lib/ape/entry.rb
|
46
|
+
- lib/ape/escaper.rb
|
47
|
+
- lib/ape/feed.rb
|
48
|
+
- lib/ape/handler.rb
|
49
|
+
- lib/ape/html.rb
|
50
|
+
- lib/ape/invoker.rb
|
51
|
+
- lib/ape/invokers/deleter.rb
|
52
|
+
- lib/ape/invokers/getter.rb
|
53
|
+
- lib/ape/invokers/poster.rb
|
54
|
+
- lib/ape/invokers/putter.rb
|
55
|
+
- lib/ape/layout/ape.css
|
56
|
+
- lib/ape/layout/ape_logo.png
|
57
|
+
- lib/ape/layout/index.html
|
58
|
+
- lib/ape/layout/info.png
|
59
|
+
- lib/ape/names.rb
|
60
|
+
- lib/ape/print_writer.rb
|
61
|
+
- lib/ape/samples/atom_schema.txt
|
62
|
+
- lib/ape/samples/basic_entry.eruby
|
63
|
+
- lib/ape/samples/categories_schema.txt
|
64
|
+
- lib/ape/samples/mini_entry.eruby
|
65
|
+
- lib/ape/samples/service_schema.txt
|
66
|
+
- lib/ape/samples/unclean_xhtml_entry.eruby
|
67
|
+
- lib/ape/samples.rb
|
68
|
+
- lib/ape/server.rb
|
69
|
+
- lib/ape/service.rb
|
70
|
+
- lib/ape/validator.rb
|
71
|
+
- lib/ape/version.rb
|
72
|
+
- lib/ape.rb
|
73
|
+
- LICENSE
|
74
|
+
- README
|
75
|
+
- scripts/go.rb
|
76
|
+
- test/test_helper.rb
|
77
|
+
- test/unit/authent_test.rb
|
78
|
+
- test/unit/invoker_test.rb
|
79
|
+
- test/unit/samples_test.rb
|
80
|
+
- Manifest
|
81
|
+
- ape.gemspec
|
82
|
+
has_rdoc: true
|
83
|
+
homepage: http://www.tbray.org/ongoing/misc/Software#p-4
|
84
|
+
post_install_message:
|
85
|
+
rdoc_options: []
|
86
|
+
|
87
|
+
require_paths:
|
88
|
+
- lib
|
89
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: "0"
|
94
|
+
version:
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: "0"
|
100
|
+
version:
|
101
|
+
requirements: []
|
102
|
+
|
103
|
+
rubyforge_project: ape
|
104
|
+
rubygems_version: 1.0.0
|
105
|
+
signing_key:
|
106
|
+
specification_version: 2
|
107
|
+
summary: A tool to exercice AtomPub server.
|
108
|
+
test_files:
|
109
|
+
- test/unit/authent_test.rb
|
110
|
+
- test/unit/invoker_test.rb
|
111
|
+
- test/unit/samples_test.rb
|