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.
Files changed (47) hide show
  1. data/CHANGELOG +1 -0
  2. data/LICENSE +19 -0
  3. data/Manifest +45 -0
  4. data/README +12 -0
  5. data/ape.gemspec +57 -0
  6. data/bin/ape_server +28 -0
  7. data/lib/ape.rb +982 -0
  8. data/lib/ape/atomURI.rb +73 -0
  9. data/lib/ape/auth/google_login_credentials.rb +96 -0
  10. data/lib/ape/auth/wsse_credentials.rb +25 -0
  11. data/lib/ape/authent.rb +42 -0
  12. data/lib/ape/categories.rb +95 -0
  13. data/lib/ape/collection.rb +51 -0
  14. data/lib/ape/crumbs.rb +39 -0
  15. data/lib/ape/entry.rb +151 -0
  16. data/lib/ape/escaper.rb +29 -0
  17. data/lib/ape/feed.rb +117 -0
  18. data/lib/ape/handler.rb +34 -0
  19. data/lib/ape/html.rb +17 -0
  20. data/lib/ape/invoker.rb +54 -0
  21. data/lib/ape/invokers/deleter.rb +31 -0
  22. data/lib/ape/invokers/getter.rb +80 -0
  23. data/lib/ape/invokers/poster.rb +57 -0
  24. data/lib/ape/invokers/putter.rb +46 -0
  25. data/lib/ape/layout/ape.css +56 -0
  26. data/lib/ape/layout/ape_logo.png +0 -0
  27. data/lib/ape/layout/index.html +54 -0
  28. data/lib/ape/layout/info.png +0 -0
  29. data/lib/ape/names.rb +24 -0
  30. data/lib/ape/print_writer.rb +21 -0
  31. data/lib/ape/samples.rb +180 -0
  32. data/lib/ape/samples/atom_schema.txt +338 -0
  33. data/lib/ape/samples/basic_entry.eruby +16 -0
  34. data/lib/ape/samples/categories_schema.txt +69 -0
  35. data/lib/ape/samples/mini_entry.eruby +8 -0
  36. data/lib/ape/samples/service_schema.txt +187 -0
  37. data/lib/ape/samples/unclean_xhtml_entry.eruby +21 -0
  38. data/lib/ape/server.rb +32 -0
  39. data/lib/ape/service.rb +12 -0
  40. data/lib/ape/validator.rb +65 -0
  41. data/lib/ape/version.rb +9 -0
  42. data/scripts/go.rb +29 -0
  43. data/test/test_helper.rb +17 -0
  44. data/test/unit/authent_test.rb +35 -0
  45. data/test/unit/invoker_test.rb +25 -0
  46. data/test/unit/samples_test.rb +36 -0
  47. metadata +111 -0
@@ -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