require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
module Owasp
module Esapi
module Sanitizer
describe Xss do
let(:filter) {Owasp::Esapi::Sanitizer::Xss.new}
it "should leave untouched untainted strings" do
untainted = "This is an unoffensive string"
output = filter.sanitize(untainted)
output.should == untainted
end
it "should sanitize the '<' character" do
false_positive_tainted = "I am a supposed to be a tainted < string"
output = filter.sanitize(false_positive_tainted)
output.should == false_positive_tainted.gsub("<", "<")
end
it "should sanitize the '>' character" do
false_positive_tainted = "I am a supposed to be a tainted > string"
output = filter.sanitize(false_positive_tainted)
output.should == false_positive_tainted.gsub(">", ">")
end
it "should sanitize the '&' character" do
false_positive_tainted = "I am a supposed to be a tainted & string"
output = filter.sanitize(false_positive_tainted)
output.should == false_positive_tainted.gsub("&", "&")
end
it "should sanitize the '\"' character" do
false_positive_tainted = "I am a supposed to be a tainted \" string"
output = filter.sanitize(false_positive_tainted)
output.should == false_positive_tainted.gsub("\"", """)
end
it "should sanitize the '\'' character" do
false_positive_tainted = "I am a supposed to be a tainted \' string"
output = filter.sanitize(false_positive_tainted)
output.should == false_positive_tainted.gsub("\'", "'")
end
it "should sanitize the '/' character" do
false_positive_tainted = "I am a supposed to be a tainted / string"
output = filter.sanitize(false_positive_tainted)
output.should == false_positive_tainted.gsub("/", "/")
end
it "shoud sanitize an injecting up attack pattern" do
taint = ""
output = filter.sanitize(taint)
output.should == taint.gsub("<", "<").gsub(">", ">").gsub("\'", "'").gsub("/", "/")
end
it "shoud sanitize an injecting up attack pattern" do
taint = "/>"
output = filter.sanitize(taint)
output.should == taint.gsub("<", "<").gsub(">", ">").gsub("\'", "'").gsub("/", "/")
end
end
end
end
end