-------------------------------------------------------------------------------
  Test 1: Check simple requests using basic HTTP methods
-------------------------------------------------------------------------------

  >            GET /pass                                     ... ok
  >           POST /pass                                     ... ok
  >            PUT /pass                                     ... ok
  >         DELETE /pass                                     ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 2: Check simple requests using arbitrary alphanumeric methods
-------------------------------------------------------------------------------

  >       zFw2g9Lm /pass                                     ... ok
  >       YTevr6hu /pass                                     ... ok
  >       F63uxhHS /pass                                     ... ok
  >       IQtPHwFG /pass                                     ... ok
  >       sauT8DrW /pass                                     ... ok
  >       q7foHTeF /pass                                     ... ok
  >       GGCcoAgm /pass                                     ... ok
  >       YJv3vyGZ /pass                                     ... ok
  >       WwrIy0xL /pass                                     ... ok
  >       f1ferwRK /pass                                     ... ok
  >       w0axBkzb /pass                                     ... ok
  >       KBGOAtql /pass                                     ... ok
  >       ZdfOjnys /pass                                     ... ok
  >       UNcg7RtV /pass                                     ... ok
  >       4zZcHhkb /pass                                     ... ok
  >       BUDEiViB /pass                                     ... ok
  >       UeBR4oY3 /pass                                     ... ok
  >       Ym8P7GIJ /pass                                     ... ok
  >       bN7cBQFx /pass                                     ... ok
  >       K0lTRfcF /pass                                     ... ok
  >       XGRMWoMS /pass                                     ... ok
  >       RpWfBVWE /pass                                     ... ok
  >       JRztLAUj /pass                                     ... ok
  >       dlf5hs29 /pass                                     ... ok
  >       TCBPrDty /pass                                     ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 3: Check that route methods are not case-sensitive
-------------------------------------------------------------------------------

  >            GET /pass                                     ... ok
  >            get /pass                                     ... ok
  >            gEt /pass                                     ... ok
  >            GeT /pass                                     ... ok
  >            GEt /pass                                     ... ok
  >            gET /pass                                     ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 4: Check single path accessible via several simple HTTP methods
-------------------------------------------------------------------------------

  >            GET /pass                                     ... ok
  >           POST /pass                                     ... ok
  >            PUT /pass                                     ... ok
  >         DELETE /pass                                     ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 5: Check that method of request is not altered by the router
-------------------------------------------------------------------------------

  >            GET /pass                                     ... ok
  >           POST /pass                                     ... ok
  >            PUT /pass                                     ... ok
  >         DELETE /pass                                     ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 6: Check that common paths were not hard-coded
-------------------------------------------------------------------------------

  >            GET /                                         ... ok
  >            GET /index.html                               ... ok
  >            GET /feed                                     ... ok
  >            GET /threads                                  ... ok
  >            GET /threads/thread                           ... ok
  >            GET /threads/0                                ... ok
  >            GET /threads/1                                ... ok
  >            GET /users/user/recent                        ... ok
  >            GET /users/amit/recent                        ... ok
  >            GET /users/kap/recent                         ... ok
  >            GET /users/will/recent                        ... ok
  >           POST /                                         ... ok
  >           POST /index.html                               ... ok
  >           POST /feed                                     ... ok
  >           POST /threads/thread                           ... ok
  >           POST /threads/0                                ... ok
  >           POST /threads/1                                ... ok
  >           POST /threads/2                                ... ok
  >           POST /users/new                                ... ok
  >           POST /users/user/follow                        ... ok
  >           POST /users/amit/follow                        ... ok
  >           POST /users/kap/follow                         ... ok
  >           POST /users/will/follow                        ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 7: Check simple requests to long paths with multiple directories
-------------------------------------------------------------------------------

  >            GET /path/to/file                             ... ok
  >            GET /it/was/the/best/of/times                 ... ok
  >            GET /it/was/the/worst/of/times                ... ok
  >            GET /vagrant/assignments/assignment2/http_router ... ok
  >            GET /a/b/c/d/e/f/g/h/i/j/k/l                  ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 8: Check simple requests to very short paths
-------------------------------------------------------------------------------

  >            GET                                           ... ok
  >            GET /                                         ... ok
  >            GET /a                                        ... ok
  >            GET /a1                                       ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 9: Check that paths are case-sensitive
-------------------------------------------------------------------------------

  >            GET /PATH                                     ... ok
  >            GET /Path                                     ... ok
  >            GET /pAth                                     ... ok
  >            GET /paTH                                     ... ok
  >            GET /PAth                                     ... ok
  >            GET /PATh                                     ... ok
  >            GET /PaTh                                     ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 10: Check that adding a route more than once updates its handler.
-------------------------------------------------------------------------------

  >            GET /pathA                                    ... ok
  >            GET /pathB                                    ... ok
  >            GET /pathC                                    ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 11: Ensure nonexistant paths don't resolve to ancestors or descendants
-------------------------------------------------------------------------------

  >            GET /a                                        ... ok
  >            GET /a/b                                      ... ok
  >            GET /a/b/c                                    ... ok
  >            GET /a/b/c/d                                  ... ok
  >            GET /a/b/c/d/e                                ... ok
  >            GET /a/b/c/d/e/f                              ... ok
  >            GET /a/b/c/d/e/f/g                            ... ok
  >            GET /a/b/c/d/e/f/g/h                          ... ok
  >            GET /a/b/c/d/e/f/g/h/i                        ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 12: Check that router finds the longest possible matching path
-------------------------------------------------------------------------------

  >            GET /a                                        ... ok
  >            GET /a/b                                      ... ok
  >            GET /a/b/c                                    ... ok
  >            GET /a/b/c/d                                  ... ok
  >            GET /a/b/c/d/e                                ... ok
  >            GET /a/b/c/d/e/f                              ... ok
  >            GET /a/b/c/d/e/f/g                            ... ok
  >            GET /a/b/c/d/e/f/g/h                          ... ok
  >            GET /a/b/c/d/e/f/g/h/i                        ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 13: Check that router can have subdirectories with same name as parent
-------------------------------------------------------------------------------

  >            GET /a                                        ... ok
  >            GET /a/a                                      ... ok
  >            GET /a/a/a                                    ... ok
  >            GET /a/a/a/a                                  ... ok
  >            GET /a/a/a/a/a                                ... ok
  >            GET /a/a/a/a/a/a                              ... ok
  >            GET /a/a/a/a/a/a/a                            ... ok
  >            GET /a/a/a/a/a/a/a/a                          ... ok
  >            GET /a/a/a/a/a/a/a/a/a                        ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 14: Check that routes with simple captures can be resolved at all
-------------------------------------------------------------------------------

  >            GET value                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /value HTTP/1.1
    Expected: PASS
    Received: 404 page not found

  >            GET alice                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /alice HTTP/1.1
    Expected: PASS
    Received: 404 page not found

  >            GET bob                                       ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /bob HTTP/1.1
    Expected: PASS
    Received: 404 page not found

  >            GET charlie                                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /charlie HTTP/1.1
    Expected: PASS
    Received: 404 page not found

  >            GET denise                                    ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /denise HTTP/1.1
    Expected: PASS
    Received: 404 page not found

  >            GET eve                                       ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /eve HTTP/1.1
    Expected: PASS
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 15: Check simple captures yield correct keys in query string
-------------------------------------------------------------------------------

  >            GET value                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /value HTTP/1.1
    Expected: key
    Received: 404 page not found

  >            GET alice                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /alice HTTP/1.1
    Expected: key
    Received: 404 page not found

  >            GET bob                                       ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /bob HTTP/1.1
    Expected: key
    Received: 404 page not found

  >            GET charlie                                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /charlie HTTP/1.1
    Expected: key
    Received: 404 page not found

  >            GET denise                                    ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /denise HTTP/1.1
    Expected: key
    Received: 404 page not found

  >            GET eve                                       ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /eve HTTP/1.1
    Expected: key
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 16: Check simple captures yield correct keys in query string
-------------------------------------------------------------------------------

  >            GET value                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /value HTTP/1.1
    Expected: value
    Received: 404 page not found

  >            GET alice                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /alice HTTP/1.1
    Expected: alice
    Received: 404 page not found

  >            GET bob                                       ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /bob HTTP/1.1
    Expected: bob
    Received: 404 page not found

  >            GET charlie                                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /charlie HTTP/1.1
    Expected: charlie
    Received: 404 page not found

  >            GET denise                                    ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /denise HTTP/1.1
    Expected: denise
    Received: 404 page not found

  >            GET eve                                       ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /eve HTTP/1.1
    Expected: eve
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 17: Check that basic capture yields correct keys and values
-------------------------------------------------------------------------------

  >            GET value                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /value HTTP/1.1
    Expected: key=value
    Received: 404 page not found

  >            GET alice                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /alice HTTP/1.1
    Expected: key=alice
    Received: 404 page not found

  >            GET bob                                       ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /bob HTTP/1.1
    Expected: key=bob
    Received: 404 page not found

  >            GET charlie                                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /charlie HTTP/1.1
    Expected: key=charlie
    Received: 404 page not found

  >            GET denise                                    ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /denise HTTP/1.1
    Expected: key=denise
    Received: 404 page not found

  >            GET eve                                       ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /eve HTTP/1.1
    Expected: key=eve
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 18: Check that capture works at the end of a long path
-------------------------------------------------------------------------------

  >            GET /a/b/c/d/e/f/g/h/i/j/k/l/value            ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/g/h/i/j/k/l/:key
    Request:  GET /a/b/c/d/e/f/g/h/i/j/k/l/value HTTP/1.1
    Expected: key=value
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/g/h/i/j/k/l/alice            ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/g/h/i/j/k/l/:key
    Request:  GET /a/b/c/d/e/f/g/h/i/j/k/l/alice HTTP/1.1
    Expected: key=alice
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/g/h/i/j/k/l/bob              ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/g/h/i/j/k/l/:key
    Request:  GET /a/b/c/d/e/f/g/h/i/j/k/l/bob HTTP/1.1
    Expected: key=bob
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/g/h/i/j/k/l/charlie          ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/g/h/i/j/k/l/:key
    Request:  GET /a/b/c/d/e/f/g/h/i/j/k/l/charlie HTTP/1.1
    Expected: key=charlie
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/g/h/i/j/k/l/denise           ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/g/h/i/j/k/l/:key
    Request:  GET /a/b/c/d/e/f/g/h/i/j/k/l/denise HTTP/1.1
    Expected: key=denise
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/g/h/i/j/k/l/eve              ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/g/h/i/j/k/l/:key
    Request:  GET /a/b/c/d/e/f/g/h/i/j/k/l/eve HTTP/1.1
    Expected: key=eve
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 19: Check that capture works in the middle of a long path
-------------------------------------------------------------------------------

  >            GET /a/b/c/d/e/f/value/g/h/i/j/k/l/           ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/:key/g/h/i/j/k/l/
    Request:  GET /a/b/c/d/e/f/value/g/h/i/j/k/l HTTP/1.1
    Expected: key=value
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/alice/g/h/i/j/k/l/           ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/:key/g/h/i/j/k/l/
    Request:  GET /a/b/c/d/e/f/alice/g/h/i/j/k/l HTTP/1.1
    Expected: key=alice
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/bob/g/h/i/j/k/l/             ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/:key/g/h/i/j/k/l/
    Request:  GET /a/b/c/d/e/f/bob/g/h/i/j/k/l HTTP/1.1
    Expected: key=bob
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/charlie/g/h/i/j/k/l/         ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/:key/g/h/i/j/k/l/
    Request:  GET /a/b/c/d/e/f/charlie/g/h/i/j/k/l HTTP/1.1
    Expected: key=charlie
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/denise/g/h/i/j/k/l/          ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/:key/g/h/i/j/k/l/
    Request:  GET /a/b/c/d/e/f/denise/g/h/i/j/k/l HTTP/1.1
    Expected: key=denise
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/eve/g/h/i/j/k/l/             ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/:key/g/h/i/j/k/l/
    Request:  GET /a/b/c/d/e/f/eve/g/h/i/j/k/l HTTP/1.1
    Expected: key=eve
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 20: Check that captures support any directory, not just the key name
-------------------------------------------------------------------------------

  >            GET /:capture                                 ... ok
  >            GET /pass                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:capture
    - Method: GET   	Path: /path/:capture2
    Request:  GET /pass HTTP/1.1
    Expected: PASS
    Received: 404 page not found

  >            GET /path/:capture2                           ... ok
  >            GET /path/pass                                ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:capture
    - Method: GET   	Path: /path/:capture2
    Request:  GET /path/pass HTTP/1.1
    Expected: PASS
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 21: Check that several captures can appear in one route
-------------------------------------------------------------------------------

  >            GET /person/Alice/11                          ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /person/Alice/11 HTTP/1.1
    Expected: age=11&name=Alice
    Received: 404 page not found

  >            GET /person/Bob/22                            ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /person/Bob/22 HTTP/1.1
    Expected: age=22&name=Bob
    Received: 404 page not found

  >            GET /person/Charlie/33                        ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /person/Charlie/33 HTTP/1.1
    Expected: age=33&name=Charlie
    Received: 404 page not found

  >            GET /person/Dave/44                           ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /person/Dave/44 HTTP/1.1
    Expected: age=44&name=Dave
    Received: 404 page not found

  >            GET /person/Eve/55                            ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /person/Eve/55 HTTP/1.1
    Expected: age=55&name=Eve
    Received: 404 page not found

  >            GET /add/1/2/3/4                              ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /add/1/2/3/4 HTTP/1.1
    Expected: a=1&b=2&c=3&d=4
    Received: 404 page not found

  >            GET /add/5/6/7/8                              ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /add/5/6/7/8 HTTP/1.1
    Expected: a=5&b=6&c=7&d=8
    Received: 404 page not found

  >            GET /add/316/317/318/319                      ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /add/316/317/318/319 HTTP/1.1
    Expected: a=316&b=317&c=318&d=319
    Received: 404 page not found

  >            GET /add/0/0/1/2                              ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /add/0/0/1/2 HTTP/1.1
    Expected: a=0&b=0&c=1&d=2
    Received: 404 page not found

  >            GET /add/3/5/8/13                             ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /add/3/5/8/13 HTTP/1.1
    Expected: a=3&b=5&c=8&d=13
    Received: 404 page not found

  >            GET /sub/1/2/3/4/other/path/info              ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /sub/1/2/3/4/other/path/info HTTP/1.1
    Expected: e=1&f=2&g=3&h=4
    Received: 404 page not found

  >            GET /sub/5/6/7/8/other/path/info              ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /sub/5/6/7/8/other/path/info HTTP/1.1
    Expected: e=5&f=6&g=7&h=8
    Received: 404 page not found

  >            GET /sub/316/317/318/319/other/path/info      ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /sub/316/317/318/319/other/path/info HTTP/1.1
    Expected: e=316&f=317&g=318&h=319
    Received: 404 page not found

  >            GET /sub/0/0/1/2/other/path/info              ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /sub/0/0/1/2/other/path/info HTTP/1.1
    Expected: e=0&f=0&g=1&h=2
    Received: 404 page not found

  >            GET /sub/3/5/8/13/other/path/info             ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /sub/3/5/8/13/other/path/info HTTP/1.1
    Expected: e=3&f=5&g=8&h=13
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 22: Check that multiple values can be captured under a single key
-------------------------------------------------------------------------------

  >            GET a/b                                       ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key/:key
    Request:  GET /a/b HTTP/1.1
    Expected: a&b
    Received: 404 page not found

  >            GET foo/bar                                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key/:key
    Request:  GET /foo/bar HTTP/1.1
    Expected: bar&foo
    Received: 404 page not found

  >            GET 123/456                                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key/:key
    Request:  GET /123/456 HTTP/1.1
    Expected: 123&456
    Received: 404 page not found

  >            GET alice/bob                                 ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key/:key
    Request:  GET /alice/bob HTTP/1.1
    Expected: alice&bob
    Received: 404 page not found

  >            GET value/value                               ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key/:key
    Request:  GET /value/value HTTP/1.1
    Expected: value&value
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 23: Tests that keys are overwritten when adding several capturing routes
-------------------------------------------------------------------------------

  >            GET /foo                                      ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: :alice
    - Method: GET   	Path: :bob
    - Method: GET   	Path: :charlie
    - Method: GET   	Path: :dave
    - Method: GET   	Path: :eve
    - Method: GET   	Path: /user/:alice/files
    - Method: GET   	Path: /user/:bob/files
    - Method: GET   	Path: /user/:charlie/files
    - Method: GET   	Path: /user/:dave/files
    - Method: GET   	Path: /user/:eve/files
    Request:  GET /foo HTTP/1.1
    Expected: eve
    Received: 404 page not found

  >            GET /user/foo/files                           ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: :alice
    - Method: GET   	Path: :bob
    - Method: GET   	Path: :charlie
    - Method: GET   	Path: :dave
    - Method: GET   	Path: :eve
    - Method: GET   	Path: /user/:alice/files
    - Method: GET   	Path: /user/:bob/files
    - Method: GET   	Path: /user/:charlie/files
    - Method: GET   	Path: /user/:dave/files
    - Method: GET   	Path: /user/:eve/files
    Request:  GET /user/foo/files HTTP/1.1
    Expected: eve
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 24: Check that non-capturing routes have precedence over capturing ones
-------------------------------------------------------------------------------

  >            GET /path/to/value                            ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /path/to/:file
    - Method: GET   	Path: /path/to/file
    Request:  GET /path/to/value HTTP/1.1
    Expected: value
    Received: 404 page not found

  >            GET /path/to/null                             ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /path/to/:file
    - Method: GET   	Path: /path/to/file
    Request:  GET /path/to/null HTTP/1.1
    Expected: null
    Received: 404 page not found

  >            GET /path/to/test                             ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /path/to/:file
    - Method: GET   	Path: /path/to/file
    Request:  GET /path/to/test HTTP/1.1
    Expected: test
    Received: 404 page not found

  >            GET /path/to/file                             ... ok
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 25: Check that greedy resolution doesn't cause you to ignore valid paths
-------------------------------------------------------------------------------

  >            GET /this/path/willnot/work                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /this/path/:will/work
    - Method: GET   	Path: /this/path/willnot/
    Request:  GET /this/path/willnot/work HTTP/1.1
    Expected: PASS
    Received: 404 page not found

###
                               -- test failed (-1.0) --

--------------------------------------------------------------
Results
--------------------------------------------------------------
>     ========================================================
>        Test summary:
>            Passed  13 / 25  tests     (12 failed)
>            Passed 112 / 112 subtests  (0 failed)
>
>        Score:
>            13.00 points of a possible 25.00  (52.00%)
>     ========================================================


Sure, basically the reason behind it is just a good compromise between performances and readability.
Basically, when you need to insert a new component or to define content for the block, generally you'd use an HTML string, eg.

```js
editor.addComponents(`<div>
  <span data-gjs-type="custom-component" data-gjs-prop="someValue" title="foo">
	Hello!
  </span>
</div>`);
```

Before creating components the editor have to parse the string and recognize the type, so with big chunks of HTML, this might impact the performances.

As an alternative to the HTML string, you could add directly the component definition

```js
editor.addComponents({
	tagName: 'div',
	components: [
		{...}
	],
});
```

This way you skip the parsing and recognition steps but you lose in readability. For this case, the JSX might help

```jsx
editor.addComponents(<div>
	  <custom-component data-gjs-prop="someValue" title="foo">
		Hello!
	  </custom-component>
</div>);
```


Successfully aliased the URL <https://nextjs15-14ea0sfao.now.sh> to the following aliases:

* https://nextjs15.gridml.now.sh
* https://nextjs15-git-master.gridml.now.sh


Regression:  Text rendering on top of laserdisc video is incomplete.  Firefox is the example.

July 5
![firefox_0705_str9](https://user-images.githubusercontent.com/9075896/61829705-791eb280-ae37-11e9-8541-a4dab04ffa98.png)

July 6
![firefox_0706_str9](https://user-images.githubusercontent.com/9075896/61829711-7a4fdf80-ae37-11e9-954b-e6647a108a30.png)


ZEIT Now cannot deploy this project to production due to following domain related issues:

 * `nextjs.org`(for alias `nextjs.org`) is not found inside your account. [Add it](https://zeit.co/dashboard/zeit/domains?action=add&domain=nextjs.org).


change the file name to show entrance type.
add corridor


I am receiving TSAN/ASAN violation from the newer version of opencensus :(


I'm happy to follow up on that, but I just want to get done with this googleapis change. It should be much easier to update google dependencies from then on.


-------------------------------------------------------------------------------
  Test 1: Send a short message from student client to reference server
-------------------------------------------------------------------------------

    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1 +0,0 @@
    -Go Tigers!
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 2: Send a random alphanumeric message from S client to R server
-------------------------------------------------------------------------------

    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 3: Send random binary message from S client to R server.
-------------------------------------------------------------------------------

    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 4: Send full text of Moby Dick from S client to R server.
-------------------------------------------------------------------------------

    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 5: Try using a different port for S client and R server
-------------------------------------------------------------------------------

    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1 +0,0 @@
    -Go Tigers!
    \ No newline at end of file
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 6: Try using a different IP for S client and R server
-------------------------------------------------------------------------------

###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 7: Send a short message from reference client to student server
-------------------------------------------------------------------------------

    /app/assignment1/grading_scripts/run-single-test.sh: line 69: kill: (1035) - No such process
    FAIL
    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1 +0,0 @@
    -Go Tigers!
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 8: Send a random alphanumeric message from R client to S server
-------------------------------------------------------------------------------

    /app/assignment1/grading_scripts/run-single-test.sh: line 69: kill: (1072) - No such process
    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 9: Send random binary message from R client to S server.
-------------------------------------------------------------------------------

    /app/assignment1/grading_scripts/run-single-test.sh: line 69: kill: (1107) - No such process
    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 10: Send full text of Moby Dick from R client to S server.
-------------------------------------------------------------------------------

    /app/assignment1/grading_scripts/run-single-test.sh: line 69: kill: (1143) - No such process
    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 11: Open multiple sequential connections from R client to S server
-------------------------------------------------------------------------------

    Terminated
    Terminated
    /app/assignment1/grading_scripts/run-single-test.sh: line 135: kill: (1176) - No such process
    FAIL
    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1,3 +0,0 @@
    -Line 1
    -Line 2
    -Line 3
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 12: Open multiple concurrent connections from R client to S server
-------------------------------------------------------------------------------

    2019/07/24 21:26:56 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/24 21:26:56 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/24 21:26:56 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/24 21:26:57 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/24 21:26:57 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/24 21:26:58 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/24 21:26:58 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/24 21:26:59 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/24 21:26:59 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/24 21:26:59 dial tcp 127.0.0.1:10001: connect: connection refused
    /app/assignment1/grading_scripts/run-single-test.sh: line 170: kill: (1232) - No such process
    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 13: Try using a different port for R client and S server
-------------------------------------------------------------------------------

    /app/assignment1/grading_scripts/run-single-test.sh: line 69: kill: (1380) - No such process
    FAIL
    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1 +0,0 @@
    -Go Tigers!
    \ No newline at end of file
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 14: Send a short message from student client to student server
-------------------------------------------------------------------------------

    FAIL
    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1 +0,0 @@
    -Go Tigers!
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 15: Send a random alphanumeric message from S client to S server
-------------------------------------------------------------------------------

    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 16: Send random binary message from S client to S server.
-------------------------------------------------------------------------------

    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 17: Send full text of Moby Dick from S client to S server.
-------------------------------------------------------------------------------

    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 18: Open multiple sequential connections from S client to S server
-------------------------------------------------------------------------------

    FAIL
    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1,3 +0,0 @@
    -Line 1
    -Line 2
    -Line 3
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 19: Open multiple concurrent connections from S client to S server
-------------------------------------------------------------------------------

    /app/assignment1/grading_scripts/run-single-test.sh: line 170: kill: (1608) - No such process
    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 20: Try using a different port for S client and S server
-------------------------------------------------------------------------------

    FAIL
    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1 +0,0 @@
    -Go Tigers!
    \ No newline at end of file
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 21: Try using a different IP for S client and S server
-------------------------------------------------------------------------------

    PASS
    No message received

###
                               -- test failed (-1.0) --

--------------------------------------------------------------
Results
--------------------------------------------------------------
>     ========================================================
>        Test summary:
>            Passed   1 / 24  tests     (23 failed)
>
>        Score:
>            1.00 points of a possible 24.00  (4.17%)
>     ========================================================


🔥 Device tests completed (Failed) on TvOS-Beta on [Azure DevOps](https://dev.azure.com/devdiv/DevDiv/_build/index?buildId=2880167)(TvOS-Beta): [Html Report](http://xamarin-storage/jenkins/xamarin-macios/xcode11/67087c2282d89e64796e2be550621b17b1a1ee14/2880167/device-tests/jenkins-results/tests/index.html) 🔥

# Test results

193 tests' device not found, 0 tests passed.


Successfully aliased the URL <https://issueist-5a6tjp37p.now.sh> to the following aliases:

* https://issueist.wolfpak.now.sh
* https://issueist-git-master.wolfpak.now.sh


Can this string be extracted?


Привет, не подскажешь зачем этот плагин удалили?


Then it should crash with webAO alone, since that consumes way more than the server list.


> It seems to be Mineland

> # Contributors:
### Head-Developer: Demon69
### Developer: JonasTD
### Translator: Error8
### Developer: Abode

It seems that its our copyright, so get the hell out of here :>


`self._dns_params` -> `self._dsn_params`


Successfully aliased the URL <https://videolistapi-oalyhdoe6.now.sh> to the following aliases:

* https://video-list-api.ljavierrodriguez.now.sh
* https://video-list-api-git-master.ljavierrodriguez.now.sh


Why would we need to expose having the user specify a path? I suggest removing this option and using a file in the user's home directory.