File: digest_conversions_test.rb

package info (click to toggle)
ruby-httpauth 0.2.1%2Bgh-1.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, trixie
  • size: 192 kB
  • sloc: ruby: 925; makefile: 2
file content (62 lines) | stat: -rw-r--r-- 1,918 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
$LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'

require 'test/unit'
require 'httpauth/digest'

class DigestConversionsTest < Test::Unit::TestCase
  cases = {}
  cases[:quote_string] = {
    'word' => '"word"',
    'word word' => '"word word"'
  }
  cases[:unquote_string] = cases[:quote_string].invert
  cases[:int_to_hex] = {
    12 => '0000000c',
    1 => '00000001',
    65_535 => '0000ffff'
  }
  cases[:hex_to_int] = cases[:int_to_hex].invert
  cases[:str_to_bool] = {
    'true' => true,
    'false' => false
  }
  cases[:bool_to_str] = cases[:str_to_bool].invert
  cases[:space_quoted_string_to_list] = {
    "\"word word word\"" => %w[word word word],
    "\"word\"" => ['word']
  }
  cases[:list_to_space_quoted_string] = cases[:space_quoted_string_to_list].invert

  cases[:comma_quoted_string_to_list] = {
    "\"word,word,word\"" => %w[word word word],
    "\"word\"" => ['word']
  }
  cases[:list_to_comma_quoted_string] = cases[:comma_quoted_string_to_list].invert

  cases.each do |c, expected|
    define_method "test_#{c}" do
      expected.each do |from, to|
        assert_equal to, HTTPAuth::Digest::Conversions.send(c, from)
      end
    end
  end

  def test_unquote_string_garbage
    assert_equal 'unknown', HTTPAuth::Digest::Conversions.unquote_string('unknown')
    assert_equal '', HTTPAuth::Digest::Conversions.unquote_string('')
    assert_equal '', HTTPAuth::Digest::Conversions.unquote_string('""')
  end

  def test_str_to_bool_garbage
    assert_equal false, HTTPAuth::Digest::Conversions.str_to_bool('unknown')
  end

  def test_hex_to_int_garbage
    assert_equal 0, HTTPAuth::Digest::Conversions.hex_to_int('unknown')
  end

  def test_quoted_string_to_list_garbage
    assert_equal ['unknown'], HTTPAuth::Digest::Conversions.space_quoted_string_to_list('unknown')
    assert_equal ['unknown'], HTTPAuth::Digest::Conversions.comma_quoted_string_to_list('unknown')
  end
end