File: rbpdf_http_test.rb

package info (click to toggle)
ruby-rbpdf 1.21.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 16,488 kB
  • sloc: ruby: 138,259; makefile: 12
file content (76 lines) | stat: -rw-r--r-- 2,177 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Copyright (c) 2011-2017 NAITOH Jun
# Released under the MIT license
# http://www.opensource.org/licenses/MIT

require 'test_helper'

class RbpdfHttpTest < Test::Unit::TestCase
  class MYPDF < RBPDF
    def get_image_file(uri)
      super
    end
  end

  def setup
    require 'webrick'
    @port = 51234

    dir = File.dirname(__FILE__)
    @s = WEBrick::HTTPServer.new(:Port => @port, :DocumentRoot => dir, :BindAddress => "0.0.0.0", :DoNotReverseLookup => true)
    @t = Thread.new { @s.start }
  end

  test "Image get image file test" do
    images = [
      # file_name,                    error_message
      ['logo_rbpdf_8bit.png',         nil],
      ['logo_rbpdf_8bit .png',        nil],
      ['logo_rbpdf_8bit+ .png',       nil],
      ['logo_rbpdf_8bit_no_file.png', /^RBPDF error: Unable to get image width and height: /],
    ]
    # no use
    #if RUBY_VERSION >= '2.0' # Ruby 1.9.2/1.9.3
    #  utf8_japanese_aiueo_str  = "\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a"
    #  images << 'logo_rbpdf_8bit_' + utf8_japanese_aiueo_str + '.png'
    #end

    pdf = MYPDF.new
    images.each_with_index {|image, i|
      pdf.add_page
      #image[0].force_encoding('ASCII-8BIT') if image[0].respond_to?(:force_encoding)
      tmpFile = pdf.get_image_file('http://127.0.0.1:' + @port.to_s + '/' + image[0])

      img_file = tmpFile.path
      assert_not_equal "", img_file
      unless File.exist?(img_file)
        assert false, "file not found. :" + img_file
      end

      if image[1].nil?
        result_img = pdf.image(img_file, 50, 0, 0, '', '', '', '', false, 300, '', true)
        assert_equal i+1, result_img
      else
        err = assert_raise(RBPDFError) { 
          result_img = pdf.image(img_file, 50, 0, 0, '', '', '', '', false, 300, '', true)
        }
        assert_match image[1], err.message
        assert_equal nil, result_img
      end

      no = pdf.get_num_pages
      assert_equal i+1, no

      # remove temp files
      tmpFile.delete unless tmpFile.nil?

      if File.exist?(img_file)
        assert false, "file found. :" + img_file
      end
    }
  end

  def teardown
    @s.shutdown
    @t.join
  end
end