~ubuntu-branches/ubuntu/quantal/ruby1.9.1/quantal

« back to all changes in this revision

Viewing changes to test/webrick/test_filehandler.rb

  • Committer: Bazaar Package Importer
  • Author(s): Lucas Nussbaum
  • Date: 2010-07-31 17:08:39 UTC
  • mfrom: (1.1.4 upstream) (8.1.2 sid)
  • Revision ID: james.westby@ubuntu.com-20100731170839-j034dmpdqt1cc4p6
Tags: 1.9.2~svn28788-1
* New release based on upstream snapshot from the 1.9.2 branch,
  after 1.9.2 RC2. That branch is (supposed to be) binary-compatible
  with the 1.9.1 branch.
  + Builds fine on i386. Closes: #580852.
* Upgrade to Standards-Version: 3.9.1. No changes needed.
* Updated generated incs.
* Patches that still need work:
  + Unclear status, need more investigation:
   090729_fix_Makefile_deps.dpatch
   090803_exclude_rdoc.dpatch
   203_adjust_base_of_search_path.dpatch
   902_define_YAML_in_yaml_stringio.rb.dpatch
   919_common.mk_tweaks.dpatch
   931_libruby_suffix.dpatch
   940_test_thread_mutex_sync_shorter.dpatch
  + Maybe not needed anymore, keeping but not applying.
   102_skip_test_copy_stream.dpatch (test doesn't block anymore?)
   104_skip_btest_io.dpatch (test doesn't block anymore?)
   201_gem_prelude.dpatch (we don't use that rubygems anyway?)
   202_gem_default_dir.dpatch (we don't use that rubygems anyway?)
   940_test_file_exhaustive_fails_as_root.dpatch
   940_test_priority_fails.dpatch
   100518_load_libc_libm.dpatch
* Add disable-tests.diff: disable some tests that cause failures on FreeBSD.
  Closes: #590002, #543805, #542927.
* However, many new failures on FreeBSD. Since that version is still an
  improvement, add the check that makes test suite failures non-fatal on
  FreeBSD again. That still needs to be investigated.
* Re-add 903_skip_base_ruby_check.dpatch
* Add build-dependency on ruby1.8 and drop all pre-generated files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
require "test/unit"
 
2
require_relative "utils.rb"
2
3
require "webrick"
3
4
require "stringio"
4
 
require File.join(File.dirname(__FILE__), "utils.rb")
5
5
 
6
6
class WEBrick::TestFileHandler < Test::Unit::TestCase
7
7
  def default_file_handler(filename)
75
75
  def test_filehandler
76
76
    config = { :DocumentRoot => File.dirname(__FILE__), }
77
77
    this_file = File.basename(__FILE__)
 
78
    filesize = File.size(__FILE__)
 
79
    this_data = File.open(__FILE__, "rb") {|f| f.read}
 
80
    range = nil
 
81
    bug2593 = '[ruby-dev:40030]'
 
82
 
78
83
    TestWEBrick.start_httpserver(config) do |server, addr, port, log|
79
84
      http = Net::HTTP.new(addr, port)
80
85
      req = Net::HTTP::Get.new("/")
89
94
        assert_equal("text/plain", res.content_type, log.call)
90
95
        assert_equal(File.read(__FILE__), res.body, log.call)
91
96
      }
 
97
 
 
98
      req = Net::HTTP::Get.new("/#{this_file}", "range"=>"bytes=#{filesize-100}-")
 
99
      http.request(req){|res|
 
100
        assert_equal("206", res.code, log.call)
 
101
        assert_equal("text/plain", res.content_type, log.call)
 
102
        assert_nothing_raised(bug2593) {range = res.content_range}
 
103
        assert_equal((filesize-100)..(filesize-1), range, log.call)
 
104
        assert_equal(this_data[-100..-1], res.body, log.call)
 
105
      }
 
106
 
 
107
      req = Net::HTTP::Get.new("/#{this_file}", "range"=>"bytes=-100")
 
108
      http.request(req){|res|
 
109
        assert_equal("206", res.code, log.call)
 
110
        assert_equal("text/plain", res.content_type, log.call)
 
111
        assert_nothing_raised(bug2593) {range = res.content_range}
 
112
        assert_equal((filesize-100)..(filesize-1), range, log.call)
 
113
        assert_equal(this_data[-100..-1], res.body, log.call)
 
114
      }
 
115
 
 
116
      req = Net::HTTP::Get.new("/#{this_file}", "range"=>"bytes=0-99")
 
117
      http.request(req){|res|
 
118
        assert_equal("206", res.code, log.call)
 
119
        assert_equal("text/plain", res.content_type, log.call)
 
120
        assert_nothing_raised(bug2593) {range = res.content_range}
 
121
        assert_equal(0..99, range, log.call)
 
122
        assert_equal(this_data[0..99], res.body, log.call)
 
123
      }
 
124
 
 
125
      req = Net::HTTP::Get.new("/#{this_file}", "range"=>"bytes=100-199")
 
126
      http.request(req){|res|
 
127
        assert_equal("206", res.code, log.call)
 
128
        assert_equal("text/plain", res.content_type, log.call)
 
129
        assert_nothing_raised(bug2593) {range = res.content_range}
 
130
        assert_equal(100..199, range, log.call)
 
131
        assert_equal(this_data[100..199], res.body, log.call)
 
132
      }
 
133
 
 
134
      req = Net::HTTP::Get.new("/#{this_file}", "range"=>"bytes=0-0")
 
135
      http.request(req){|res|
 
136
        assert_equal("206", res.code, log.call)
 
137
        assert_equal("text/plain", res.content_type, log.call)
 
138
        assert_nothing_raised(bug2593) {range = res.content_range}
 
139
        assert_equal(0..0, range, log.call)
 
140
        assert_equal(this_data[0..0], res.body, log.call)
 
141
      }
 
142
 
 
143
      req = Net::HTTP::Get.new("/#{this_file}", "range"=>"bytes=-1")
 
144
      http.request(req){|res|
 
145
        assert_equal("206", res.code, log.call)
 
146
        assert_equal("text/plain", res.content_type, log.call)
 
147
        assert_nothing_raised(bug2593) {range = res.content_range}
 
148
        assert_equal((filesize-1)..(filesize-1), range, log.call)
 
149
        assert_equal(this_data[-1, 1], res.body, log.call)
 
150
      }
 
151
 
 
152
      req = Net::HTTP::Get.new("/#{this_file}", "range"=>"bytes=0-0, -2")
 
153
      http.request(req){|res|
 
154
        assert_equal("206", res.code, log.call)
 
155
        assert_equal("multipart/byteranges", res.content_type, log.call)
 
156
      }
 
157
 
92
158
    end
93
159
  end
94
160