@@ -76,7 +76,7 @@ def request_for user_agent, request_uri=nil, options={:ssl => false}
7676 end
7777
7878 it "adds a @enforce and @app_name variables to the report uri" do
79- opts = @opts . merge ( :tag_report_uri => true , :enforce => true , :app_name => lambda { 'twitter' } )
79+ opts = @opts . merge ( :tag_report_uri => true , :enforce => true , :app_name => proc { 'twitter' } )
8080 csp = ContentSecurityPolicy . new ( opts , :request => request_for ( CHROME ) )
8181 expect ( csp . value ) . to include ( "/csp_report?enforce=true&app_name=twitter" )
8282 end
@@ -90,7 +90,7 @@ def request_for user_agent, request_uri=nil, options={:ssl => false}
9090 it "accepts procs for report-uris" do
9191 opts = {
9292 :default_src => 'self' ,
93- :report_uri => lambda { "http://lambda/result" }
93+ :report_uri => proc { "http://lambda/result" }
9494 }
9595
9696 csp = ContentSecurityPolicy . new ( opts )
@@ -99,15 +99,29 @@ def request_for user_agent, request_uri=nil, options={:ssl => false}
9999
100100 it "accepts procs for other fields" do
101101 opts = {
102- :default_src => lambda { "http://lambda/result" } ,
103- :enforce => lambda { true } ,
104- :disable_fill_missing => lambda { true }
102+ :default_src => proc { "http://lambda/result" } ,
103+ :enforce => proc { true } ,
104+ :disable_fill_missing => proc { true }
105105 }
106106
107107 csp = ContentSecurityPolicy . new ( opts )
108108 expect ( csp . value ) . to eq ( "default-src http://lambda/result; img-src http://lambda/result data:;" )
109109 expect ( csp . name ) . to match ( "Content-Security-Policy" )
110110 end
111+
112+ it "passes a reference to the controller to the proc" do
113+ controller = double
114+ user = double ( :beta_testing? => true )
115+
116+ allow ( controller ) . to receive ( :current_user ) . and_return ( user )
117+ opts = {
118+ :disable_fill_missing => true ,
119+ :default_src => "self" ,
120+ :enforce => lambda { |c | c . current_user . beta_testing? }
121+ }
122+ csp = ContentSecurityPolicy . new ( opts , :controller => controller )
123+ expect ( csp . name ) . to match ( "Content-Security-Policy" )
124+ end
111125 end
112126 end
113127
0 commit comments