summaryrefslogtreecommitdiff
path: root/test/javascript/tests/uuids.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/javascript/tests/uuids.js')
-rw-r--r--test/javascript/tests/uuids.js148
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
- );
-
- };