strelka 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +1 -2
  3. data.tar.gz.sig +2 -1
  4. data/ChangeLog +143 -24
  5. data/History.rdoc +7 -0
  6. data/Rakefile +40 -27
  7. data/lib/strelka.rb +3 -2
  8. data/lib/strelka/app.rb +1 -0
  9. data/lib/strelka/app/auth.rb +2 -2
  10. data/lib/strelka/httprequest.rb +16 -14
  11. data/spec/helpers.rb +0 -1
  12. data/spec/strelka/app/auth_spec.rb +13 -6
  13. data/spec/strelka/app/errors_spec.rb +0 -5
  14. data/spec/strelka/app/filters_spec.rb +0 -5
  15. data/spec/strelka/app/negotiation_spec.rb +0 -5
  16. data/spec/strelka/app/parameters_spec.rb +0 -5
  17. data/spec/strelka/app/restresources_spec.rb +0 -5
  18. data/spec/strelka/app/routing_spec.rb +0 -5
  19. data/spec/strelka/app/sessions_spec.rb +0 -5
  20. data/spec/strelka/app/templating_spec.rb +0 -2
  21. data/spec/strelka/app_spec.rb +0 -2
  22. data/spec/strelka/authprovider/basic_spec.rb +0 -5
  23. data/spec/strelka/authprovider/hostaccess_spec.rb +0 -5
  24. data/spec/strelka/authprovider_spec.rb +0 -5
  25. data/spec/strelka/cookie_spec.rb +0 -8
  26. data/spec/strelka/discovery_spec.rb +0 -5
  27. data/spec/strelka/exceptions_spec.rb +0 -5
  28. data/spec/strelka/httprequest/acceptparams_spec.rb +0 -8
  29. data/spec/strelka/httprequest/auth_spec.rb +0 -5
  30. data/spec/strelka/httprequest/negotiation_spec.rb +0 -5
  31. data/spec/strelka/httprequest/session_spec.rb +0 -5
  32. data/spec/strelka/httprequest_spec.rb +0 -4
  33. data/spec/strelka/httpresponse/negotiation_spec.rb +0 -5
  34. data/spec/strelka/httpresponse/session_spec.rb +0 -5
  35. data/spec/strelka/httpresponse_spec.rb +0 -5
  36. data/spec/strelka/mixins_spec.rb +0 -7
  37. data/spec/strelka/multipartparser_spec.rb +0 -2
  38. data/spec/strelka/paramvalidator_spec.rb +1 -13
  39. data/spec/strelka/plugins_spec.rb +0 -2
  40. data/spec/strelka/router/default_spec.rb +0 -5
  41. data/spec/strelka/router/exclusive_spec.rb +0 -5
  42. data/spec/strelka/router_spec.rb +0 -5
  43. data/spec/strelka/session/db_spec.rb +0 -5
  44. data/spec/strelka/session/default_spec.rb +0 -5
  45. data/spec/strelka/session_spec.rb +0 -5
  46. data/spec/strelka/websocketserver/routing_spec.rb +0 -5
  47. data/spec/strelka/websocketserver_spec.rb +0 -2
  48. data/spec/strelka_spec.rb +0 -9
  49. metadata +78 -90
  50. metadata.gz.sig +0 -0
data/spec/helpers.rb CHANGED
@@ -104,7 +104,6 @@ end
104
104
  RSpec.configure do |config|
105
105
  include Strelka::TestConstants
106
106
 
107
- config.treat_symbols_as_metadata_keys_with_true_values = true
108
107
  config.run_all_when_everything_filtered = true
109
108
  config.filter_run :focus
110
109
  config.order = 'random'
@@ -20,14 +20,9 @@ require 'strelka/behavior/plugin'
20
20
  describe Strelka::App::Auth do
21
21
 
22
22
  before( :all ) do
23
- setup_logging( :fatal )
24
23
  @request_factory = Mongrel2::RequestFactory.new( route: '/api/v1' )
25
24
  end
26
25
 
27
- after( :all ) do
28
- reset_logging()
29
- end
30
-
31
26
 
32
27
  it_should_behave_like( "A Strelka Plugin" )
33
28
 
@@ -430,6 +425,19 @@ describe Strelka::App::Auth do
430
425
  expect( app.required_perms_for(req) ).to eq( [ :write_access ] )
431
426
  end
432
427
 
428
+ it "ensures required permissions are not retained between requests" do
429
+ @app.require_perms_for( %r{.*} ){|req| :basic_access }
430
+ app = @app.new
431
+
432
+ req = @request_factory.get( '/api/v1/accounts' )
433
+
434
+ expect {
435
+ app.required_perms_for( req )
436
+ }.to_not change {
437
+ @app.positive_perms_criteria.first[ 2 ]
438
+ }
439
+ end
440
+
433
441
  it "adds specific required permissions returned by the block to argument permissions" do
434
442
  @app.require_perms_for( %r{.*}, :basic_access ) do |req|
435
443
  :write_access if req.verb != :GET
@@ -466,7 +474,6 @@ describe Strelka::App::Auth do
466
474
  expect( app.required_perms_for(req) ).to include( :basic_access, :write_access, :is_handsome )
467
475
  end
468
476
 
469
-
470
477
  it "allows negative perms criteria to be declared with a string" do
471
478
  @app.no_perms_for( '/string' )
472
479
  app = @app.new
@@ -21,14 +21,9 @@ require 'strelka/behavior/plugin'
21
21
  describe Strelka::App::Errors do
22
22
 
23
23
  before( :all ) do
24
- setup_logging( :fatal )
25
24
  @request_factory = Mongrel2::RequestFactory.new( route: '' )
26
25
  end
27
26
 
28
- after( :all ) do
29
- reset_logging()
30
- end
31
-
32
27
 
33
28
  it_should_behave_like( "A Strelka Plugin" )
34
29
 
@@ -20,14 +20,9 @@ require 'strelka/behavior/plugin'
20
20
  describe Strelka::App::Filters do
21
21
 
22
22
  before( :all ) do
23
- setup_logging( :fatal )
24
23
  @request_factory = Mongrel2::RequestFactory.new( route: '' )
25
24
  end
26
25
 
27
- after( :all ) do
28
- reset_logging()
29
- end
30
-
31
26
 
32
27
  it_should_behave_like( "A Strelka Plugin" )
33
28
 
@@ -20,14 +20,9 @@ describe Strelka::App::Negotiation do
20
20
 
21
21
 
22
22
  before( :all ) do
23
- setup_logging( :fatal )
24
23
  @request_factory = Mongrel2::RequestFactory.new( route: '/service/user' )
25
24
  end
26
25
 
27
- after( :all ) do
28
- reset_logging()
29
- end
30
-
31
26
 
32
27
  it_should_behave_like( "A Strelka Plugin" )
33
28
 
@@ -19,14 +19,9 @@ require 'strelka/behavior/plugin'
19
19
  describe Strelka::App::Parameters do
20
20
 
21
21
  before( :all ) do
22
- setup_logging( :fatal )
23
22
  @request_factory = Mongrel2::RequestFactory.new( route: '/user' )
24
23
  end
25
24
 
26
- after( :all ) do
27
- reset_logging()
28
- end
29
-
30
25
 
31
26
  it_should_behave_like( "A Strelka Plugin" )
32
27
 
@@ -22,7 +22,6 @@ describe Strelka::App::RestResources do
22
22
  include Mongrel2::Config::DSL
23
23
 
24
24
  before( :all ) do
25
- setup_logging()
26
25
  setup_config_db()
27
26
 
28
27
  @request_factory = Mongrel2::RequestFactory.new( route: '/api/v1' )
@@ -37,10 +36,6 @@ describe Strelka::App::RestResources do
37
36
  Mongrel2::Config::Server.dataset_module( name_selection )
38
37
  end
39
38
 
40
- after( :all ) do
41
- reset_logging()
42
- end
43
-
44
39
 
45
40
  it_should_behave_like( "A Strelka Plugin" )
46
41
 
@@ -20,14 +20,9 @@ require 'strelka/behavior/plugin'
20
20
  describe Strelka::App::Routing do
21
21
 
22
22
  before( :all ) do
23
- setup_logging( :fatal )
24
23
  @request_factory = Mongrel2::RequestFactory.new( route: '' )
25
24
  end
26
25
 
27
- after( :all ) do
28
- reset_logging()
29
- end
30
-
31
26
 
32
27
  it_should_behave_like( "A Strelka Plugin" )
33
28
 
@@ -18,14 +18,9 @@ require 'strelka/behavior/plugin'
18
18
  describe Strelka::App::Sessions do
19
19
 
20
20
  before( :all ) do
21
- setup_logging( :fatal )
22
21
  @request_factory = Mongrel2::RequestFactory.new( route: '' )
23
22
  end
24
23
 
25
- after( :all ) do
26
- reset_logging()
27
- end
28
-
29
24
 
30
25
  it_should_behave_like( "A Strelka Plugin" )
31
26
 
@@ -21,14 +21,12 @@ require 'strelka/behavior/plugin'
21
21
  describe Strelka::App::Templating do
22
22
 
23
23
  before( :all ) do
24
- setup_logging()
25
24
  @request_factory = Mongrel2::RequestFactory.new( route: '/user' )
26
25
  @original_template_paths = Inversion::Template.template_paths.dup
27
26
  end
28
27
 
29
28
  after( :all ) do
30
29
  Inversion::Template.template_paths.replace( @original_template_paths )
31
- reset_logging()
32
30
  end
33
31
 
34
32
 
@@ -19,7 +19,6 @@ require 'strelka/app'
19
19
  describe Strelka::App do
20
20
 
21
21
  before( :all ) do
22
- setup_logging( :fatal )
23
22
  @initial_registry = Strelka::App.loaded_plugins.dup
24
23
  @request_factory = Mongrel2::RequestFactory.new( route: '/mail' )
25
24
  Mongrel2::Config.db = Mongrel2::Config.in_memory_db
@@ -52,7 +51,6 @@ describe Strelka::App do
52
51
 
53
52
  after( :all ) do
54
53
  Strelka::App.loaded_plugins = @initial_registry
55
- reset_logging()
56
54
  end
57
55
 
58
56
 
@@ -18,7 +18,6 @@ describe Strelka::AuthProvider::Basic do
18
18
 
19
19
  before( :all ) do
20
20
  @request_factory = Mongrel2::RequestFactory.new( route: '/admin' )
21
- setup_logging( :fatal )
22
21
  end
23
22
 
24
23
  before( :each ) do
@@ -38,10 +37,6 @@ describe Strelka::AuthProvider::Basic do
38
37
  described_class.realm = nil
39
38
  end
40
39
 
41
- after( :all ) do
42
- reset_logging()
43
- end
44
-
45
40
 
46
41
  #
47
42
  # Helpers
@@ -18,7 +18,6 @@ describe Strelka::AuthProvider::HostAccess do
18
18
 
19
19
  before( :all ) do
20
20
  @request_factory = Mongrel2::RequestFactory.new( route: '/admin' )
21
- setup_logging( :fatal )
22
21
  end
23
22
 
24
23
  before( :each ) do
@@ -26,10 +25,6 @@ describe Strelka::AuthProvider::HostAccess do
26
25
  @provider = Strelka::AuthProvider.create( :hostaccess, @app )
27
26
  end
28
27
 
29
- after( :all ) do
30
- reset_logging()
31
- end
32
-
33
28
 
34
29
  it "knows what its allowed netblocks are" do
35
30
  expect( @provider.allowed_netblocks ).to be_an( Array )
@@ -17,11 +17,6 @@ describe Strelka::AuthProvider do
17
17
 
18
18
  before( :all ) do
19
19
  @request_factory = Mongrel2::RequestFactory.new( route: '/admin' )
20
- setup_logging( :fatal )
21
- end
22
-
23
- after( :all ) do
24
- reset_logging()
25
20
  end
26
21
 
27
22
 
@@ -15,14 +15,6 @@ require 'strelka/cookie'
15
15
 
16
16
  describe Strelka::Cookie do
17
17
 
18
- before( :all ) do
19
- setup_logging( :fatal )
20
- end
21
-
22
- after( :all ) do
23
- reset_logging()
24
- end
25
-
26
18
  it "parses a 'nil' Cookie header field as an empty Hash" do
27
19
  expect( Strelka::Cookie.parse( nil ) ).to eq( {} )
28
20
  end
@@ -19,7 +19,6 @@ require 'strelka/discovery'
19
19
  describe Strelka::Discovery do
20
20
 
21
21
  before( :all ) do
22
- setup_logging()
23
22
  Mongrel2::Config.db = Mongrel2::Config.in_memory_db
24
23
  Mongrel2::Config.init_database
25
24
 
@@ -31,10 +30,6 @@ describe Strelka::Discovery do
31
30
 
32
31
  end
33
32
 
34
- after( :all ) do
35
- reset_logging()
36
- end
37
-
38
33
 
39
34
  let( :discoverable_class ) { Class.new {extend Strelka::Discovery} }
40
35
 
@@ -19,14 +19,9 @@ require 'strelka/exceptions'
19
19
  describe Strelka, "exception classes" do
20
20
 
21
21
  before( :all ) do
22
- setup_logging( :fatal )
23
22
  @request_factory = Mongrel2::RequestFactory.new( route: '/exceptions' )
24
23
  end
25
24
 
26
- after( :all ) do
27
- reset_logging()
28
- end
29
-
30
25
 
31
26
  describe Strelka::RequestError do
32
27
 
@@ -16,14 +16,6 @@ require 'strelka/httprequest/acceptparams'
16
16
 
17
17
  describe Strelka::HTTPRequest, "accept params" do
18
18
 
19
- before( :all ) do
20
- setup_logging( :fatal )
21
- end
22
-
23
- after( :all ) do
24
- reset_logging()
25
- end
26
-
27
19
 
28
20
  describe Strelka::HTTPRequest::MediaType do
29
21
 
@@ -16,14 +16,9 @@ require 'strelka/httprequest/auth'
16
16
  describe Strelka::HTTPRequest::Auth do
17
17
 
18
18
  before( :all ) do
19
- setup_logging( :fatal )
20
19
  @request_factory = Mongrel2::RequestFactory.new( route: '/service/user' )
21
20
  end
22
21
 
23
- after( :all ) do
24
- reset_logging()
25
- end
26
-
27
22
  before( :each ) do
28
23
  @req = @request_factory.get( '/service/user/estark' )
29
24
  @req.extend( described_class )
@@ -18,14 +18,9 @@ require 'strelka/httpresponse/negotiation'
18
18
  describe Strelka::HTTPRequest::Negotiation do
19
19
 
20
20
  before( :all ) do
21
- setup_logging( :fatal )
22
21
  @request_factory = Mongrel2::RequestFactory.new( route: '/service/user' )
23
22
  end
24
23
 
25
- after( :all ) do
26
- reset_logging()
27
- end
28
-
29
24
 
30
25
  before( :each ) do
31
26
  @req = @request_factory.get( '/service/user/estark' )
@@ -18,7 +18,6 @@ require 'strelka/session/default'
18
18
  describe Strelka::HTTPRequest::Session, "-extended request" do
19
19
 
20
20
  before( :all ) do
21
- setup_logging( :fatal )
22
21
  @request_factory = Mongrel2::RequestFactory.new( route: '/service/user' )
23
22
  Strelka::App::Sessions.configure( session_class: 'default' )
24
23
  end
@@ -32,10 +31,6 @@ describe Strelka::HTTPRequest::Session, "-extended request" do
32
31
  Strelka::Session::Default.sessions.clear
33
32
  end
34
33
 
35
- after( :all ) do
36
- reset_logging()
37
- end
38
-
39
34
 
40
35
  it "has a session_namespace attribute" do
41
36
  expect( @req ).to respond_to( :session_namespace )
@@ -17,13 +17,9 @@ require 'strelka/cookie'
17
17
  describe Strelka::HTTPRequest do
18
18
 
19
19
  before( :all ) do
20
- setup_logging()
21
20
  @request_factory = Mongrel2::RequestFactory.new( route: '/directory' )
22
21
  end
23
22
 
24
- after( :all ) do
25
- reset_logging()
26
- end
27
23
 
28
24
  context "instance" do
29
25
 
@@ -17,14 +17,9 @@ require 'strelka/httpresponse/negotiation'
17
17
  describe Strelka::HTTPResponse::Negotiation do
18
18
 
19
19
  before( :all ) do
20
- setup_logging( :fatal )
21
20
  @request_factory = Mongrel2::RequestFactory.new( route: '/service/user' )
22
21
  end
23
22
 
24
- after( :all ) do
25
- reset_logging()
26
- end
27
-
28
23
 
29
24
  before( :each ) do
30
25
  @app = Class.new( Strelka::App ) { plugins :negotiation }
@@ -19,7 +19,6 @@ require 'strelka/session/default'
19
19
  describe Strelka::HTTPResponse::Session, "-extended response" do
20
20
 
21
21
  before( :all ) do
22
- setup_logging( :fatal )
23
22
  @request_factory = Mongrel2::RequestFactory.new( route: '/service/user' )
24
23
  Strelka::App::Sessions.configure( session_class: 'default' )
25
24
  end
@@ -35,10 +34,6 @@ describe Strelka::HTTPResponse::Session, "-extended response" do
35
34
  Strelka::Session::Default.sessions.clear
36
35
  end
37
36
 
38
- after( :all ) do
39
- reset_logging()
40
- end
41
-
42
37
 
43
38
  it "has a session_namespace attribute" do
44
39
  expect( @res ).to respond_to( :session_namespace )
@@ -14,7 +14,6 @@ require 'strelka/httpresponse'
14
14
  describe Strelka::HTTPResponse do
15
15
 
16
16
  before( :all ) do
17
- setup_logging( :fatal )
18
17
  @request_factory = Mongrel2::RequestFactory.new( route: '/glossary' )
19
18
  end
20
19
 
@@ -23,10 +22,6 @@ describe Strelka::HTTPResponse do
23
22
  @res = @req.response
24
23
  end
25
24
 
26
- after( :all ) do
27
- reset_logging()
28
- end
29
-
30
25
 
31
26
  it "adds a charset to the response's content-type header if it's text/* and one is explicitly set" do
32
27
  @res.content_type = 'text/html'
@@ -61,13 +61,6 @@ describe Strelka, "mixins" do
61
61
 
62
62
  describe Strelka::Delegation do
63
63
 
64
- before( :all ) do
65
- setup_logging( :fatal )
66
- end
67
- after( :all ) do
68
- reset_logging()
69
- end
70
-
71
64
  describe "method delegation" do
72
65
  before( :all ) do
73
66
  @testclass = Class.new do