| | 2123 | |
|---|
| | 2124 | def test_route_requirements_with_unsupported_regexp_options_must_error |
|---|
| | 2125 | assert_raises ArgumentError do |
|---|
| | 2126 | set.draw do |map| |
|---|
| | 2127 | map.connect 'page/:name', :controller => 'pages', |
|---|
| | 2128 | :action => 'show', |
|---|
| | 2129 | :requirements => {:name => /(david|jamis)/m} |
|---|
| | 2130 | end |
|---|
| | 2131 | end |
|---|
| | 2132 | end |
|---|
| | 2133 | |
|---|
| | 2134 | def test_route_requirements_with_supported_options_must_not_error |
|---|
| | 2135 | assert_nothing_raised do |
|---|
| | 2136 | set.draw do |map| |
|---|
| | 2137 | map.connect 'page/:name', :controller => 'pages', |
|---|
| | 2138 | :action => 'show', |
|---|
| | 2139 | :requirements => {:name => /(david|jamis)/i} |
|---|
| | 2140 | end |
|---|
| | 2141 | end |
|---|
| | 2142 | assert_nothing_raised do |
|---|
| | 2143 | set.draw do |map| |
|---|
| | 2144 | map.connect 'page/:name', :controller => 'pages', |
|---|
| | 2145 | :action => 'show', |
|---|
| | 2146 | :requirements => {:name => / # Desperately overcommented regexp |
|---|
| | 2147 | ( #Either |
|---|
| | 2148 | david #The Creator |
|---|
| | 2149 | | #Or |
|---|
| | 2150 | jamis #The Deployer |
|---|
| | 2151 | )/x} |
|---|
| | 2152 | end |
|---|
| | 2153 | end |
|---|
| | 2154 | end |
|---|
| | 2155 | |
|---|
| | 2156 | def test_route_requirement_recognize_with_ignore_case |
|---|
| | 2157 | set.draw do |map| |
|---|
| | 2158 | map.connect 'page/:name', :controller => 'pages', |
|---|
| | 2159 | :action => 'show', |
|---|
| | 2160 | :requirements => {:name => /(david|jamis)/i} |
|---|
| | 2161 | end |
|---|
| | 2162 | assert_equal({:controller => 'pages', :action => 'show', :name => 'jamis'}, set.recognize_path('/page/jamis')) |
|---|
| | 2163 | assert_raises ActionController::RoutingError do |
|---|
| | 2164 | set.recognize_path('/page/davidjamis') |
|---|
| | 2165 | end |
|---|
| | 2166 | assert_equal({:controller => 'pages', :action => 'show', :name => 'DAVID'}, set.recognize_path('/page/DAVID')) |
|---|
| | 2167 | end |
|---|
| | 2168 | |
|---|
| | 2169 | def test_route_requirement_generate_with_ignore_case |
|---|
| | 2170 | set.draw do |map| |
|---|
| | 2171 | map.connect 'page/:name', :controller => 'pages', |
|---|
| | 2172 | :action => 'show', |
|---|
| | 2173 | :requirements => {:name => /(david|jamis)/i} |
|---|
| | 2174 | end |
|---|
| | 2175 | url = set.generate({:controller => 'pages', :action => 'show', :name => 'david'}) |
|---|
| | 2176 | assert_equal "/page/david", url |
|---|
| | 2177 | assert_raises ActionController::RoutingError do |
|---|
| | 2178 | url = set.generate({:controller => 'pages', :action => 'show', :name => 'davidjamis'}) |
|---|
| | 2179 | end |
|---|
| | 2180 | url = set.generate({:controller => 'pages', :action => 'show', :name => 'JAMIS'}) |
|---|
| | 2181 | assert_equal "/page/JAMIS", url |
|---|
| | 2182 | end |
|---|
| | 2183 | |
|---|
| | 2184 | def test_route_requirement_recognize_with_extended_syntax |
|---|
| | 2185 | set.draw do |map| |
|---|
| | 2186 | map.connect 'page/:name', :controller => 'pages', |
|---|
| | 2187 | :action => 'show', |
|---|
| | 2188 | :requirements => {:name => / # Desperately overcommented regexp |
|---|
| | 2189 | ( #Either |
|---|
| | 2190 | david #The Creator |
|---|
| | 2191 | | #Or |
|---|
| | 2192 | jamis #The Deployer |
|---|
| | 2193 | )/x} |
|---|
| | 2194 | end |
|---|
| | 2195 | assert_equal({:controller => 'pages', :action => 'show', :name => 'jamis'}, set.recognize_path('/page/jamis')) |
|---|
| | 2196 | assert_equal({:controller => 'pages', :action => 'show', :name => 'david'}, set.recognize_path('/page/david')) |
|---|
| | 2197 | assert_raises ActionController::RoutingError do |
|---|
| | 2198 | set.recognize_path('/page/david #The Creator') |
|---|
| | 2199 | end |
|---|
| | 2200 | assert_raises ActionController::RoutingError do |
|---|
| | 2201 | set.recognize_path('/page/David') |
|---|
| | 2202 | end |
|---|
| | 2203 | end |
|---|
| | 2204 | |
|---|
| | 2205 | def test_route_requirement_generate_with_extended_syntax |
|---|
| | 2206 | set.draw do |map| |
|---|
| | 2207 | map.connect 'page/:name', :controller => 'pages', |
|---|
| | 2208 | :action => 'show', |
|---|
| | 2209 | :requirements => {:name => / # Desperately overcommented regexp |
|---|
| | 2210 | ( #Either |
|---|
| | 2211 | david #The Creator |
|---|
| | 2212 | | #Or |
|---|
| | 2213 | jamis #The Deployer |
|---|
| | 2214 | )/x} |
|---|
| | 2215 | end |
|---|
| | 2216 | url = set.generate({:controller => 'pages', :action => 'show', :name => 'david'}) |
|---|
| | 2217 | assert_equal "/page/david", url |
|---|
| | 2218 | assert_raises ActionController::RoutingError do |
|---|
| | 2219 | url = set.generate({:controller => 'pages', :action => 'show', :name => 'davidjamis'}) |
|---|
| | 2220 | end |
|---|
| | 2221 | assert_raises ActionController::RoutingError do |
|---|
| | 2222 | url = set.generate({:controller => 'pages', :action => 'show', :name => 'JAMIS'}) |
|---|
| | 2223 | end |
|---|
| | 2224 | end |
|---|
| | 2225 | |
|---|
| | 2226 | def test_route_requirement_generate_with_xi_modifiers |
|---|
| | 2227 | set.draw do |map| |
|---|
| | 2228 | map.connect 'page/:name', :controller => 'pages', |
|---|
| | 2229 | :action => 'show', |
|---|
| | 2230 | :requirements => {:name => / # Desperately overcommented regexp |
|---|
| | 2231 | ( #Either |
|---|
| | 2232 | david #The Creator |
|---|
| | 2233 | | #Or |
|---|
| | 2234 | jamis #The Deployer |
|---|
| | 2235 | )/xi} |
|---|
| | 2236 | end |
|---|
| | 2237 | url = set.generate({:controller => 'pages', :action => 'show', :name => 'JAMIS'}) |
|---|
| | 2238 | assert_equal "/page/JAMIS", url |
|---|
| | 2239 | end |
|---|
| | 2240 | |
|---|
| | 2241 | def test_route_requirement_recognize_with_xi_modifiers |
|---|
| | 2242 | set.draw do |map| |
|---|
| | 2243 | map.connect 'page/:name', :controller => 'pages', |
|---|
| | 2244 | :action => 'show', |
|---|
| | 2245 | :requirements => {:name => / # Desperately overcommented regexp |
|---|
| | 2246 | ( #Either |
|---|
| | 2247 | david #The Creator |
|---|
| | 2248 | | #Or |
|---|
| | 2249 | jamis #The Deployer |
|---|
| | 2250 | )/xi} |
|---|
| | 2251 | end |
|---|
| | 2252 | assert_equal({:controller => 'pages', :action => 'show', :name => 'JAMIS'}, set.recognize_path('/page/JAMIS')) |
|---|
| | 2253 | end |
|---|
| | 2254 | |
|---|