Changeset 702
- Timestamp:
- 10/19/07 04:26:50 (2 years ago)
- Files:
-
- trunk/test/test_uriclassifier.rb (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/test/test_uriclassifier.rb
r585 r702 15 15 16 16 def test_uri_finding 17 u = URIClassifier.new18 u .register("/test", 1)17 uri_classifier = URIClassifier.new 18 uri_classifier.register("/test", 1) 19 19 20 s n,pi,val = u.resolve("/test")21 assert val != nil, "didn't resolve"22 assert_equal 1, val , "wrong value"23 assert_equal "/test", sn, "wrong SCRIPT_NAME"20 script_name, path_info, value = uri_classifier.resolve("/test") 21 assert value 22 assert_equal 1, value 23 assert_equal "/test", script_name 24 24 end 25 25 … … 29 29 prefix = "/pre" 30 30 31 u = URIClassifier.new32 u .register(prefix,1)31 uri_classifier = URIClassifier.new 32 uri_classifier.register(prefix,1) 33 33 34 s n,pi,val = u.resolve(prefix)35 s n,pi,val = u.resolve(test)36 assert val != nil, "didn't resolve"37 assert_equal prefix, sn, "wrong script name"38 assert_equal test[s n.length .. -1],pi, "wrong path info"34 script_name, path_info, value = uri_classifier.resolve(prefix) 35 script_name, path_info, value = uri_classifier.resolve(test) 36 assert value, "didn't resolve" 37 assert_equal prefix, script_name 38 assert_equal test[script_name.length .. -1], path_info 39 39 40 assert u .inspect != nil, "No inspect for classifier"41 assert u.uris[0] == prefix, "URI list didn't match"40 assert uri_classifier.inspect 41 assert_equal prefix, uri_classifier.uris[0] 42 42 end 43 43 44 44 def test_not_finding 45 45 test = "/cant/find/me" 46 u = URIClassifier.new47 u .register(test, 1)46 uri_classifier = URIClassifier.new 47 uri_classifier.register(test, 1) 48 48 49 s n,pi,val = u.resolve("/nope/not/here")50 assert_ equal nil,sn, "shouldn't be found"51 assert_ equal nil,pi, "shouldn't be found"52 assert_ equal nil,val, "shouldn't be found"49 script_name, path_info, value = uri_classifier.resolve("/nope/not/here") 50 assert_nil script_name 51 assert_nil path_info 52 assert_nil value 53 53 end 54 54 55 55 def test_exceptions 56 u = URIClassifier.new56 uri_classifier = URIClassifier.new 57 57 58 u .register("test", 1)58 uri_classifier.register("test", 1) 59 59 60 60 failed = false 61 61 begin 62 u .register("test", 1)62 uri_classifier.register("test", 1) 63 63 rescue => e 64 64 failed = true 65 65 end 66 66 67 assert failed , "it didn't fail as expected"67 assert failed 68 68 69 69 failed = false 70 70 begin 71 u .register("", 1)71 uri_classifier.register("", 1) 72 72 rescue => e 73 73 failed = true 74 74 end 75 75 76 assert failed , "it didn't fail as expected"76 assert failed 77 77 end 78 78 79 79 80 80 def test_register_unregister 81 u = URIClassifier.new81 uri_classifier = URIClassifier.new 82 82 83 83 100.times do 84 u .register("stuff", 1)85 val = u.unregister("stuff")86 assert_equal 1, val, "didn't get the right return value"84 uri_classifier.register("stuff", 1) 85 value = uri_classifier.unregister("stuff") 86 assert_equal 1, value 87 87 end 88 88 89 u .register("things",1)90 s n,pi,val = u.resolve("things")91 assert_equal 1, val , "result doesn't match"89 uri_classifier.register("things",1) 90 script_name, path_info, value = uri_classifier.resolve("things") 91 assert_equal 1, value 92 92 93 u .unregister("things")94 s n,pi,val = u.resolve("things")95 assert_ equal nil, val, "result should be nil"93 uri_classifier.unregister("things") 94 script_name, path_info, value = uri_classifier.resolve("things") 95 assert_nil value 96 96 97 97 end … … 99 99 100 100 def test_uri_branching 101 u = URIClassifier.new102 u .register("/test", 1)103 u .register("/test/this",2)101 uri_classifier = URIClassifier.new 102 uri_classifier.register("/test", 1) 103 uri_classifier.register("/test/this",2) 104 104 105 s n,pi,h = u.resolve("/test")106 s n,pi,h = u.resolve("/test/that")107 assert_equal "/test", s n, "failed to properly find script off branch portion of uri"108 assert_equal "/that", p i, "didn't get the right patch info"109 assert_equal 1, h , "wrong result for branching uri"105 script_name, path_info, handler = uri_classifier.resolve("/test") 106 script_name, path_info, handler = uri_classifier.resolve("/test/that") 107 assert_equal "/test", script_name, "failed to properly find script off branch portion of uri" 108 assert_equal "/that", path_info 109 assert_equal 1, handler, "wrong result for branching uri" 110 110 end 111 111 … … 113 113 tests = ["/test","/test/that","/test/this"] 114 114 uri = "/test/this/that" 115 u = URIClassifier.new115 uri_classifier = URIClassifier.new 116 116 117 cur = ""117 current = "" 118 118 uri.each_byte do |c| 119 cur << c.chr120 u .register(cur, c)119 current << c.chr 120 uri_classifier.register(current, c) 121 121 end 122 122 123 123 # try to resolve everything with no asserts as a fuzzing 124 124 tests.each do |prefix| 125 cur = ""125 current = "" 126 126 prefix.each_byte do |c| 127 cur << c.chr128 s n, pi, h = u.resolve(cur)129 assert s n != nil, "didn't get a script name"130 assert p i != nil, "didn't get path info"131 assert h != nil, "didn't find the handler"127 current << c.chr 128 script_name, path_info, handler = uri_classifier.resolve(current) 129 assert script_name 130 assert path_info 131 assert handler 132 132 end 133 133 end … … 135 135 # assert that we find stuff 136 136 tests.each do |t| 137 s n, pi, h = u.resolve(t)138 assert h != nil, "didn't find handler"137 script_name, path_info, handler = uri_classifier.resolve(t) 138 assert handler 139 139 end 140 140 141 141 # assert we don't find stuff 142 s n, pi, h = u.resolve("chicken")143 assert_nil h , "shoulnd't find anything"144 assert_nil s n, "shoulnd't find anything"145 assert_nil p i, "shoulnd't find anything"142 script_name, path_info, handler = uri_classifier.resolve("chicken") 143 assert_nil handler 144 assert_nil script_name 145 assert_nil path_info 146 146 end 147 147 … … 151 151 # This is needed to accomodate real usage of handlers. 152 152 def test_root_mounted 153 u = URIClassifier.new153 uri_classifier = URIClassifier.new 154 154 root = "/" 155 155 path = "/this/is/a/test" 156 156 157 u .register(root, 1)157 uri_classifier.register(root, 1) 158 158 159 s n, pi, h = u.resolve(root)160 assert_equal 1, h, "didn't find handler"161 assert_equal root, pi, "didn't get right path info"162 assert_equal root, sn, "didn't get right script name"159 script_name, path_info, handler = uri_classifier.resolve(root) 160 assert_equal 1, handler 161 assert_equal root, path_info 162 assert_equal root, script_name 163 163 164 s n, pi, h = u.resolve(path)165 assert_equal path, pi, "didn't get right path info"166 assert_equal root, sn, "didn't get right script name"167 assert_equal 1, h, "didn't find handler"164 script_name, path_info, handler = uri_classifier.resolve(path) 165 assert_equal path, path_info 166 assert_equal root, script_name 167 assert_equal 1, handler 168 168 end 169 169 … … 176 176 path = "/path" 177 177 178 u = URIClassifier.new179 u .register(path, 1)180 u .register(root, 2)178 uri_classifier = URIClassifier.new 179 uri_classifier.register(path, 1) 180 uri_classifier.register(root, 2) 181 181 182 182 tests.each do |uri| 183 sn, pi, h = u.resolve(uri)184 assert_equal root, sn, "didn't get right script name"185 assert_equal uri, pi, "didn't get right path info"186 assert_equal 2, h, "didn't find handler"183 script_name, path_info, handler = uri_classifier.resolve(uri) 184 assert_equal root, script_name 185 assert_equal uri, path_info 186 assert_equal 2, handler 187 187 end 188 188 end
