require 'spec_helper' describe RequestLogAnalyzer::Filter::Field, 'string in accept mode' do before(:each) do @filter = RequestLogAnalyzer::Filter::Field.new(testing_format, :field => :test, :value => 'test', :mode => :select) end it "should reject a request if the field value does not match" do @filter.filter(request(:test => 'not test')).should be_nil end it "should reject a request if the field name does not match" do @filter.filter(request(:testing => 'test')).should be_nil end it "should accept a request if the both name and value match" do @filter.filter(request(:test => 'test')).should_not be_nil end it "should accept a request if the value is not the first value" do @filter.filter(request([{:test => 'ignore'}, {:test => 'test'}])).should_not be_nil end end describe RequestLogAnalyzer::Filter::Field, 'string in reject mode' do before(:each) do @filter = RequestLogAnalyzer::Filter::Field.new(testing_format, :field => :test, :value => 'test', :mode => :reject) end it "should accept a request if the field value does not match" do @filter.filter(request(:test => 'not test')).should_not be_nil end it "should accept a request if the field name does not match" do @filter.filter(request(:testing => 'test')).should_not be_nil end it "should reject a request if the both name and value match" do @filter.filter(request(:test => 'test')).should be_nil end it "should reject a request if the value is not the first value" do @filter.filter(request([{:test => 'ignore'}, {:test => 'test'}])).should be_nil end end describe RequestLogAnalyzer::Filter::Field, 'regexp in accept mode' do before(:each) do @filter = RequestLogAnalyzer::Filter::Field.new(testing_format, :field => :test, :value => '/test/', :mode => :select) end it "should reject a request if the field value does not match" do @filter.filter(request(:test => 'a working test')).should_not be_nil end it "should reject a request if the field name does not match" do @filter.filter(request(:testing => 'test')).should be_nil end it "should accept a request if the value is not the first value" do @filter.filter(request([{:test => 'ignore'}, {:test => 'testing 123'}])).should_not be_nil end end