X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=spec%2Fspec_helper.rb;h=bb112575d9818a1ab4c060f59d25dff8aade93b9;hb=6de6c1cacd9cd62638470f74f41a288038932b33;hp=cf9c9713576b471446e339b8ea3c13f3b193cb3a;hpb=ecd7c7248b9a93163090bfe7512b2a53d8da6d95;p=swftools.git diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index cf9c971..bb11257 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -53,7 +53,12 @@ class Area @rgb.minmax != [@rgb[0],@rgb[0]] or raise AreaError.new(self,"is plain colored") end def should_contain_text(text) - @file.get_text(@x1,@y1,@x2,@y2) == text or raise AreaError.new(self, "doesn't contain text #{text}") + text2 = @file.get_text(@x1,@y1,@x2,@y2) + text2 == text or raise AreaError.new(self, "doesn't contain text \"#{text}\" (found: \"#{text2}\")") + end + def should_contain_link(url) + links = @file.get_links(@x1,@y1,@x2,@y2) + (links & [url]).empty? and raise AreaError.new(self, "doesn't contain url \"#{url}\"") end def to_s "(#{@x1},#{@y1},#{@x2},#{@y2})" @@ -111,7 +116,7 @@ class DocFile `pdfinfo #{@filename}` =~ /Page size:\s*([0-9]+) x ([0-9]+) pts/ width,height = $1,$2 dpi = (72.0 * 612 / width.to_i).to_i - output = `pdf2swf --flatten -s zoom=#{dpi} -p #{@page} #{@filename} -o #{@swfname} 2>&1` + output = `pdf2swf -f --flatten -s zoom=#{dpi} -p #{@page} #{@filename} -o #{@swfname} 2>&1` #output = `pdf2swf -s zoom=#{dpi} --flatten -p #{@page} #{@filename} -o #{@swfname} 2>&1` raise ConversionFailed.new(output,@swfname) unless File.exists?(@swfname) end @@ -133,6 +138,10 @@ class DocFile #puts `swfstrings -x #{x1} -y #{y1} -W #{x2-x1} -H #{y2-y1} #{@swfname}` `swfstrings -x #{x1} -y #{y1} -W #{x2-x1} -H #{y2-y1} #{@swfname}`.chomp end + def get_links(x1,y1,x2,y2) + self.convert() + `swfdump -a #{@swfname}`.scan(/GetUrl2? URL:"([^"]*)"/).inject([]) do |a,u| a + u end + end def get_area(x1,y1,x2,y2) self.render() data = @img.export_pixels(x1, y1, x2-x1, y2-y1, "RGB")