summaryrefslogtreecommitdiffstats
path: root/debian/vendor-h2o/deps/mruby-env/test/env_test.rb
blob: 2aa3dab2c9e241d58c2fff51afba1652dd988053 (plain)
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
##
# ENV test
#

if Object.const_defined?(:MTest)
  class ENVTest < MTest::Unit::TestCase
    def test_env_class
      assert_equal(Object, ENV.class)
    end

    def setup
      @env_hash = ENV.to_hash
      ENV.clear
    end

    def teardown
      ENV.clear
      @env_hash.each do |k, v|
        ENV[k] = v
      end
    end

    def set_dummy_env
      ENV['FOO'] = 'bar'
    end

    def test_size_empty
      assert_equal(0, ENV.size)
    end

    def test_keys_empty
      assert_empty(ENV.keys)
    end

    def test_values_empty
      assert_empty(ENV.values)
    end

    def test_env_to_s_empty
      assert_equal("ENV", ENV.to_s)
    end

    def test_env_inspect_empty
      assert_equal("{}", ENV.inspect)
    end

    def test_env_to_hash_empty
      assert_equal({}, ENV.to_hash)
    end

    def test_env_get_val
      set_dummy_env
      assert_equal('bar', ENV['FOO'])
    end

    def test_env_keys
      set_dummy_env
      assert_equal(['FOO'], ENV.keys)
    end

    def test_env_values
      set_dummy_env
      assert_equal(['bar'], ENV.values)
    end

    def test_env_to_s
      set_dummy_env
      assert_equal("ENV", ENV.to_s)
    end

    def test_env_has_key
      set_dummy_env
      assert_true  ENV.has_key?("FOO")
      assert_false ENV.has_key?("BAR")
    end

    def test_env_inspect
      set_dummy_env
      assert_equal("{\"FOO\"=>\"bar\"}", ENV.inspect)
    end

    def test_env_delete
      set_dummy_env
      old = ENV['FOO']
      ret = ENV.delete('FOO')
      assert_equal(0, ENV.size)
      assert_equal(old, ret)
      assert_equal(nil, ENV.delete('nosuchenv'))
    end

    def test_env_subst_nil
      set_dummy_env
      ENV['FOO'] = nil
      assert_equal(0, ENV.size)
    end

    def test_env_store
      ENV['a'] = 'b'
      assert_equal 'b', ENV['a']

      ENV['a'] = 'c'
      assert_equal 'c', ENV['a']

      ENV['a'] = nil
      assert_equal nil, ENV['a']

      ENV['b'] = nil
      assert_equal nil, ENV['b']
      assert_equal 0, ENV.size
    end
  end

  if $ok_test
    MTest::Unit.new.mrbtest
  else
    MTest::Unit.new.run
  end
else
  $asserts << "test skip of mruby-env/test/env_test.rb"  if $asserts
end