diff options
Diffstat (limited to 'test/javascript/tests/uuids.js')
-rw-r--r-- | test/javascript/tests/uuids.js | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/test/javascript/tests/uuids.js b/test/javascript/tests/uuids.js deleted file mode 100644 index 18871ecba..000000000 --- a/test/javascript/tests/uuids.js +++ /dev/null @@ -1,148 +0,0 @@ -// Licensed under the Apache License, Version 2.0 (the "License"); you may not -// use this file except in compliance with the License. You may obtain a copy of -// the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations under -// the License. - -couchTests.elixir = true; -couchTests.uuids = function(debug) { - return console.log('done in test/elixir/test/uuids_test.exs'); - var etags = []; - var testHashBustingHeaders = function(xhr) { - T(xhr.getResponseHeader("Cache-Control").match(/no-cache/)); - T(xhr.getResponseHeader("Pragma") == "no-cache"); - - var newetag = xhr.getResponseHeader("ETag"); - T(etags.indexOf(newetag) < 0); - etags[etags.length] = newetag; - - // Removing the time based tests as they break easily when - // running CouchDB on a remote server in regards to the browser - // running the Futon test suite. - // - //var currentTime = new Date(); - //var expiresHeader = Date.parse(xhr.getResponseHeader("Expires")); - //var dateHeader = Date.parse(xhr.getResponseHeader("Date")); - - //T(expiresHeader < currentTime); - //T(currentTime - dateHeader < 3000); - }; - - if (debug) debugger; - - // a single UUID without an explicit count - var xhr = CouchDB.request("GET", "/_uuids"); - T(xhr.status == 200); - var result = JSON.parse(xhr.responseText); - T(result.uuids.length == 1); - var first = result.uuids[0]; - testHashBustingHeaders(xhr); - - // a single UUID with an explicit count - xhr = CouchDB.request("GET", "/_uuids?count=1"); - T(xhr.status == 200); - result = JSON.parse(xhr.responseText); - T(result.uuids.length == 1); - var second = result.uuids[0]; - T(first != second); - - // no collisions with 1,000 UUIDs - xhr = CouchDB.request("GET", "/_uuids?count=1000"); - T(xhr.status == 200); - result = JSON.parse(xhr.responseText); - T( result.uuids.length == 1000 ); - var seen = {}; - for(var i in result.uuids) { - var id = result.uuids[i]; - T(seen[id] === undefined); - seen[id] = 1; - } - - // ensure we return a 405 on POST - xhr = CouchDB.request("POST", "/_uuids?count=1000"); - T(xhr.status == 405); - - // Test sequential uuids - var seq_testfun = function() { - xhr = CouchDB.request("GET", "/_uuids?count=1000"); - T(xhr.status == 200); - result = JSON.parse(xhr.responseText); - for(var i = 1; i < result.uuids.length; i++) { - T(result.uuids[i].length == 32); - T(result.uuids[i-1] < result.uuids[i], "Sequential uuids are ordered."); - } - }; - - // test max_uuid_count - var xhr = CouchDB.request("GET", "/_uuids?count=1001"); - TEquals(400, xhr.status, "should error when count > max_count"); - - run_on_modified_server([{ - "section": "uuids", - "key": "algorithm", - "value": "sequential", - }], - seq_testfun - ); - - // Test utc_random uuids - var utc_testfun = function() { - xhr = CouchDB.request("GET", "/_uuids?count=1000"); - T(xhr.status == 200); - result = JSON.parse(xhr.responseText); - T(result.uuids[1].length == 32); - - // no collisions - var seen = {}; - for(var i in result.uuids) { - var id = result.uuids[i]; - T(seen[id] === undefined); - seen[id] = 1; - } - - // roughly ordered - var u1 = result.uuids[1].substr(0, 13); - var u2 = result.uuids[result.uuids.length-1].substr(0, 13); - T(u1 < u2, "UTC uuids are only roughly ordered, so this assertion may fail occasionally. Don't sweat it."); - }; - - run_on_modified_server([{ - "section": "uuids", - "key": "algorithm", - "value": "utc_random" - }], - utc_testfun - ); - - // Test utc_id uuids - var utc_id_suffix = "frog"; - var suffix_testfun = function() { - xhr = CouchDB.request("GET", "/_uuids?count=10"); - T(xhr.status == 200); - result = JSON.parse(xhr.responseText); - for(var i = 1; i < result.uuids.length; i++) { - T(result.uuids[i].length == 14 + utc_id_suffix.length); - T(result.uuids[i].substring(14) == utc_id_suffix); - T(result.uuids[i-1] < result.uuids[i], "utc_id_suffix uuids are ordered."); - } - }; - - run_on_modified_server([{ - "section": "uuids", - "key": "algorithm", - "value": "utc_id" - }, { - "section": "uuids", - "key": "utc_id_suffix", - "value": utc_id_suffix - }], - suffix_testfun - ); - - }; |