diff --git a/js/actions/system/api-blueprints.js b/js/actions/system/api-blueprints.js index 0d58929117..a536f6e36d 100644 --- a/js/actions/system/api-blueprints.js +++ b/js/actions/system/api-blueprints.js @@ -29,6 +29,7 @@ var arangodb = require("org/arangodb"); var actions = require("org/arangodb/actions"); var graph = require("org/arangodb/graph"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; // ----------------------------------------------------------------------------- // --SECTION-- global variables diff --git a/js/actions/system/api-cursor.js b/js/actions/system/api-cursor.js index 741224614f..9aff877da0 100644 --- a/js/actions/system/api-cursor.js +++ b/js/actions/system/api-cursor.js @@ -28,6 +28,8 @@ var arangodb = require("org/arangodb"); var actions = require("org/arangodb/actions"); +var internal = require("internal"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; // ----------------------------------------------------------------------------- // --SECTION-- global variables @@ -206,7 +208,7 @@ function PUT_api_cursor (req, res) { var cursorId = decodeURIComponent(req.suffix[0]); var cursor = CURSOR(cursorId); - if (! (cursor instanceof ArangoCursor)) { + if (! (cursor instanceof arangodb.ArangoCursor)) { actions.resultBad(req, res, arangodb.ERROR_CURSOR_NOT_FOUND); return; } diff --git a/js/actions/system/api-explain.js b/js/actions/system/api-explain.js index 8f644d7df0..dce8df1d36 100644 --- a/js/actions/system/api-explain.js +++ b/js/actions/system/api-explain.js @@ -26,6 +26,8 @@ //////////////////////////////////////////////////////////////////////////////// var actions = require("org/arangodb/actions"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; +var ERRORS = require("internal").errors; // ----------------------------------------------------------------------------- // --SECTION-- global variables @@ -120,7 +122,7 @@ var actions = require("org/arangodb/actions"); function POST_api_explain (req, res) { if (req.suffix.length != 0) { - actions.resultNotFound(req, res, internal.errors.ERROR_HTTP_NOT_FOUND.code, internal.errors.ERROR_HTTP_NOT_FOUND.message); + actions.resultNotFound(req, res, ERRORS.errors.ERROR_HTTP_NOT_FOUND.code, ERRORS.errors.ERROR_HTTP_NOT_FOUND.message); return; } diff --git a/js/actions/system/api-graph.js b/js/actions/system/api-graph.js index b09d9e0b86..7d63018ca3 100644 --- a/js/actions/system/api-graph.js +++ b/js/actions/system/api-graph.js @@ -29,6 +29,7 @@ (function() { var actions = require("org/arangodb/actions"); var graph = require("org/arangodb/graph"); + var ArangoError = require("org/arangodb/arango-error").ArangoError; // ----------------------------------------------------------------------------- // --SECTION-- global variables diff --git a/js/actions/system/api-query.js b/js/actions/system/api-query.js index b1dfb0cbf5..a0d87d178e 100644 --- a/js/actions/system/api-query.js +++ b/js/actions/system/api-query.js @@ -27,6 +27,7 @@ var arangodb = require("org/arangodb"); var actions = require("org/arangodb/actions"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; // ----------------------------------------------------------------------------- // --SECTION-- global variables diff --git a/js/actions/system/api-simple.js b/js/actions/system/api-simple.js index be4efc15ae..22cf142470 100644 --- a/js/actions/system/api-simple.js +++ b/js/actions/system/api-simple.js @@ -27,6 +27,8 @@ var actions = require("org/arangodb/actions"); var simple = require("org/arangodb/simple-query"); +var db = require("org/arangodb").db; +var ERRORS = require("internal").errors; var API = "_api/simple/"; @@ -89,7 +91,7 @@ actions.defineHttp({ var limit = body.limit; var skip = body.skip; var name = body.collection; - var collection = internal.db._collection(name); + var collection = db._collection(name); if (collection === null) { actions.collectionNotFound(req, res, name); @@ -172,7 +174,7 @@ actions.defineHttp({ else { var name = body.collection; var id = parseInt(name) || name; - var collection = internal.db._collection(id); + var collection = db._collection(id); if (collection === null) { actions.collectionNotFound(req, res, name); @@ -263,7 +265,7 @@ actions.defineHttp({ var name = body.collection; var geo = body.geo; - var collection = internal.db._collection(name); + var collection = db._collection(name); if (collection === null) { actions.collectionNotFound(req, res, name); @@ -378,7 +380,7 @@ actions.defineHttp({ var radius = body.radius; var geo = body.geo; var name = body.collection; - var collection = internal.db._collection(name); + var collection = db._collection(name); if (collection === null) { actions.collectionNotFound(req, res, name); @@ -478,7 +480,7 @@ actions.defineHttp({ var query = body.query; var iid = body.index || undefined; var name = body.collection; - var collection = internal.db._collection(name); + var collection = db._collection(name); if (collection === null) { actions.collectionNotFound(req, res, name); @@ -567,7 +569,7 @@ actions.defineHttp({ var skip = body.skip; var example = body.example; var name = body.collection; - var collection = internal.db._collection(name); + var collection = db._collection(name); if (collection === null) { actions.collectionNotFound(req, res, name); @@ -644,7 +646,7 @@ actions.defineHttp({ else { var example = body.example; var name = body.collection; - var collection = internal.db._collection(name); + var collection = db._collection(name); if (collection === null) { actions.collectionNotFound(req, res, name); @@ -659,7 +661,7 @@ actions.defineHttp({ actions.resultOk(req, res, actions.HTTP_OK, { document : result.next() }); } else { - actions.resultNotFound(req, res, internal.errors.ERROR_HTTP_NOT_FOUND.code, "no match"); + actions.resultNotFound(req, res, ERRORS.ERROR_HTTP_NOT_FOUND.code, "no match"); } } } @@ -695,7 +697,7 @@ actions.defineHttp({ var name = body.collection; var example = body.example; var index = body.index; - var collection = internal.db._collection(name); + var collection = db._collection(name); if (collection === null) { actions.collectionNotFound(req, res, name); @@ -774,7 +776,7 @@ actions.defineHttp({ var left = body.left; var right = body.right; var closed = body.closed; - var collection = internal.db._collection(name); + var collection = db._collection(name); if (collection === null) { actions.collectionNotFound(req, res, name); diff --git a/js/actions/system/key-value.js b/js/actions/system/key-value.js index 37b430ec22..d0e157af46 100644 --- a/js/actions/system/key-value.js +++ b/js/actions/system/key-value.js @@ -37,6 +37,8 @@ var actions = require("org/arangodb/actions"); var simple = require("org/arangodb/simple-query"); +var db = require("org/arangodb").db; +var internal = require("internal"); // ----------------------------------------------------------------------------- // --SECTION-- private functions @@ -124,7 +126,7 @@ function postKeyValue(req, res) { var collection = req.suffix[0]; - if (internal.db._collection(collection) === null) { + if (db._collection(collection) === null) { actions.collectionNotFound(req, res, collection); return; } @@ -136,7 +138,7 @@ function postKeyValue(req, res) { var doc = buildDocumentFromReq(req); - var oldDoc = internal.db._collection(collection).firstExample("$key", doc["$key"]); + var oldDoc = db._collection(collection).firstExample("$key", doc["$key"]); if (oldDoc != undefined) { actions.resultError(req, res, actions.HTTP_BAD, arangodb.ERROR_KEYVALUE_KEY_EXISTS, actions.getErrorMessage(arangodb.ERROR_KEYVALUE_KEY_EXISTS)); @@ -167,14 +169,14 @@ function putKeyValue(req, res) { var collection = req.suffix[0]; - if (internal.db._collection(collection) === null) { + if (db._collection(collection) === null) { actions.collectionNotFound(req, res); return; } var doc = buildDocumentFromReq(req); - var oldDoc = internal.db._collection(collection).firstExample("$key", doc["$key"]); + var oldDoc = db._collection(collection).firstExample("$key", doc["$key"]); if (oldDoc == undefined) { if (req.parameters["create"] == 1) { @@ -223,7 +225,7 @@ function deleteKeyValue(req, res) { var collection = req.suffix[0]; - if (internal.db._collection(collection) === null) { + if (db._collection(collection) === null) { actions.collectionNotFound(req, res); return; } @@ -234,7 +236,7 @@ function deleteKeyValue(req, res) { key += "/" + req.suffix[i]; } - var doc = internal.db._collection(collection).firstExample("$key", key); + var doc = db._collection(collection).firstExample("$key", key); if (doc == undefined) { actions.resultError(req, res, actions.HTTP_NOT_FOUND, arangodb.ERROR_KEYVALUE_KEY_NOT_FOUND, actions.getErrorMessage(arangodb.ERROR_KEYVALUE_KEY_NOT_FOUND)); @@ -267,7 +269,7 @@ function getKeyValue(req, res) { var collection = req.suffix[0]; - if (internal.db._collection(collection) === null) { + if (db._collection(collection) === null) { actions.collectionNotFound(req, res); return; } @@ -278,7 +280,7 @@ function getKeyValue(req, res) { key += "/" + req.suffix[i]; } - var doc = internal.db._collection(collection).firstExample("$key", key); + var doc = db._collection(collection).firstExample("$key", key); if (doc == undefined) { actions.resultError(req, res, actions.HTTP_NOT_FOUND, arangodb.ERROR_KEYVALUE_KEY_NOT_FOUND, actions.getErrorMessage(arangodb.ERROR_KEYVALUE_KEY_NOT_FOUND)); @@ -373,7 +375,7 @@ function searchKeyValue(req, res) { var collection = req.suffix[0]; - if (internal.db._collection(collection) === null) { + if (db._collection(collection) === null) { actions.collectionNotFound(req, res); return; } @@ -388,7 +390,7 @@ function searchKeyValue(req, res) { // TODO: build a query which selects the keys // - var cursor = internal.db._collection(collection).all(); + var cursor = db._collection(collection).all(); result = []; diff --git a/js/client/modules/org/arangodb/arango-collection.js b/js/client/modules/org/arangodb/arango-collection.js index f086bac7a2..88c15d6aea 100644 --- a/js/client/modules/org/arangodb/arango-collection.js +++ b/js/client/modules/org/arangodb/arango-collection.js @@ -32,7 +32,7 @@ var internal = require("internal"); var arangosh = require("org/arangodb/arangosh"); -var ArangoError = require("org/arangodb/arango-error"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; // ----------------------------------------------------------------------------- // --SECTION-- ArangoCollection diff --git a/js/client/modules/org/arangodb/arango-query-cursor.js b/js/client/modules/org/arangodb/arango-query-cursor.js index 239bb1a651..f43dd847c4 100644 --- a/js/client/modules/org/arangodb/arango-query-cursor.js +++ b/js/client/modules/org/arangodb/arango-query-cursor.js @@ -213,7 +213,7 @@ ArangoQueryCursor.prototype.next = function () { //////////////////////////////////////////////////////////////////////////////// ArangoQueryCursor.prototype.dispose = function () { - if (!this.data.id) { + if (! this.data.id) { // client side only cursor return; } @@ -236,13 +236,21 @@ ArangoQueryCursor.prototype.dispose = function () { //////////////////////////////////////////////////////////////////////////////// ArangoQueryCursor.prototype.count = function () { - if (!this.data.id) { + if (! this.data.id) { throw "cursor has been disposed"; } return this.data.count; }; +//////////////////////////////////////////////////////////////////////////////// +/// @brief return baseurl for query cursor +//////////////////////////////////////////////////////////////////////////////// + +ArangoQueryCursor.prototype._baseurl = function () { + return "/_api/cursor/"+ encodeURIComponent(this.data.id); +} + //////////////////////////////////////////////////////////////////////////////// /// @} //////////////////////////////////////////////////////////////////////////////// diff --git a/js/client/modules/org/arangodb/arango-statement.js b/js/client/modules/org/arangodb/arango-statement.js index cb22de99e2..50cc114b96 100644 --- a/js/client/modules/org/arangodb/arango-statement.js +++ b/js/client/modules/org/arangodb/arango-statement.js @@ -174,6 +174,21 @@ ArangoStatement.prototype.execute = function () { /// @} //////////////////////////////////////////////////////////////////////////////// +// ----------------------------------------------------------------------------- +// --SECTION-- MODULE EXPORTS +// ----------------------------------------------------------------------------- + +//////////////////////////////////////////////////////////////////////////////// +/// @addtogroup ArangoStatement +/// @{ +//////////////////////////////////////////////////////////////////////////////// + +exports.ArangoStatement = ArangoStatement; + +//////////////////////////////////////////////////////////////////////////////// +/// @} +//////////////////////////////////////////////////////////////////////////////// + // ----------------------------------------------------------------------------- // --SECTION-- END-OF-FILE // ----------------------------------------------------------------------------- diff --git a/js/client/tests/client.js b/js/client/tests/client.js index 1abcdc9a9e..fd6d1756a9 100644 --- a/js/client/tests/client.js +++ b/js/client/tests/client.js @@ -27,6 +27,7 @@ var internal = require("internal"); var jsunity = require("jsunity"); +var db = require("org/arangodb").db; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite diff --git a/js/common/modules/org/arangodb/arango-error-common.js b/js/common/modules/org/arangodb/arango-error-common.js index fac3d163eb..1a41572b7d 100644 --- a/js/common/modules/org/arangodb/arango-error-common.js +++ b/js/common/modules/org/arangodb/arango-error-common.js @@ -79,7 +79,3 @@ ArangoError.prototype.toString = function() { // mode: outline-minor // outline-regexp: "/// @brief\\|/// @addtogroup\\|// --SECTION--\\|/// @}\\|/\\*jslint" // End: -var arangodb = require("org/arangodb"); - -var output = arangodb.output; - diff --git a/js/common/modules/org/arangodb/arango-statement-common.js b/js/common/modules/org/arangodb/arango-statement-common.js index 266de01f85..35b189733d 100644 --- a/js/common/modules/org/arangodb/arango-statement-common.js +++ b/js/common/modules/org/arangodb/arango-statement-common.js @@ -51,7 +51,7 @@ function ArangoStatement (database, data) { this._batchSize = null; this._bindVars = {}; - if (!(data instanceof Object)) { + if (! (data instanceof Object)) { throw "ArangoStatement needs initial data"; } diff --git a/js/common/tests/shell-statement.js b/js/common/tests/shell-statement.js index d099ab4cdf..7428e97731 100644 --- a/js/common/tests/shell-statement.js +++ b/js/common/tests/shell-statement.js @@ -31,8 +31,7 @@ var jsunity = require("jsunity"); var arangodb = require("org/arangodb"); - -var ArangoStatement = arangodb.ArangoStatement; +var ArangoStatement = require("org/arangodb/arango-statement").ArangoStatement; var db = arangodb.db; // ----------------------------------------------------------------------------- diff --git a/js/server/ahuacatl.js b/js/server/ahuacatl.js index 9d9f341477..740c41bee4 100644 --- a/js/server/ahuacatl.js +++ b/js/server/ahuacatl.js @@ -27,6 +27,7 @@ var INTERNAL = require("internal"); var TRAVERSAL = require("org/arangodb/graph/traversal"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief type weight used for sorting and comparing @@ -2347,7 +2348,7 @@ function AHUACATL_GRAPH_TRAVERSE () { AHUACATL_THROW(INTERNAL.errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH, "TRAVERSE"); } - if (params.maxDepth <= 0) { + if (params.maxDepth === undefined) { // we need to have at least SOME limit to prevent endless iteration params.maxDepth = 256; } @@ -2381,17 +2382,18 @@ function AHUACATL_GRAPH_TRAVERSE () { trackPaths: params.paths || false, visitor: AHUACATL_TRAVERSE_VISITOR, maxDepth: params.maxDepth, + minDepth: params.minDepth, filter: filter, uniqueness: { vertices: validate(params.uniqueness && params.uniqueness.vertices, { - 'global': traversal.Traverser.UNIQUE_GLOBAL, - 'none': traversal.Traverser.UNIQUE_NONE, - 'path': traversal.Traverser.UNIQUE_PATH + 'global': TRAVERSAL.Traverser.UNIQUE_GLOBAL, + 'none': TRAVERSAL.Traverser.UNIQUE_NONE, + 'path': TRAVERSAL.Traverser.UNIQUE_PATH }), edges: validate(params.uniqueness && params.uniqueness.edges, { - 'global': traversal.Traverser.UNIQUE_GLOBAL, - 'none': traversal.Traverser.UNIQUE_NONE, - 'path': traversal.Traverser.UNIQUE_PATH + 'global': TRAVERSAL.Traverser.UNIQUE_GLOBAL, + 'none': TRAVERSAL.Traverser.UNIQUE_NONE, + 'path': TRAVERSAL.Traverser.UNIQUE_PATH }), }, expander: validate(direction, { @@ -2405,9 +2407,18 @@ function AHUACATL_GRAPH_TRAVERSE () { config.sort = function (l, r) { return l._key < r._key ? -1 : 1 }; } + var v = null; var result = [ ]; - var traverser = new TRAVERSAL.Traverser(config); - traverser.traverse(result, vertexCollection.document(startVertex)); + try { + v = vertexCollection.document(startVertex); + } + catch (err) { + } + + if (v != null) { + var traverser = new TRAVERSAL.Traverser(config); + traverser.traverse(result, v); + } return result; } diff --git a/js/server/tests/ahuacatl-arithmetic.js b/js/server/tests/ahuacatl-arithmetic.js index 4ab0afcd03..76b183af22 100644 --- a/js/server/tests/ahuacatl-arithmetic.js +++ b/js/server/tests/ahuacatl-arithmetic.js @@ -27,6 +27,7 @@ var internal = require("internal"); var jsunity = require("jsunity"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite diff --git a/js/server/tests/ahuacatl-edges.js b/js/server/tests/ahuacatl-edges.js index fe024651ce..bf59b9e65e 100644 --- a/js/server/tests/ahuacatl-edges.js +++ b/js/server/tests/ahuacatl-edges.js @@ -26,6 +26,8 @@ //////////////////////////////////////////////////////////////////////////////// var jsunity = require("jsunity"); +var internal = require("internal"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite diff --git a/js/server/tests/ahuacatl-escaping.js b/js/server/tests/ahuacatl-escaping.js index d43cec7279..314cb4525c 100644 --- a/js/server/tests/ahuacatl-escaping.js +++ b/js/server/tests/ahuacatl-escaping.js @@ -26,6 +26,7 @@ //////////////////////////////////////////////////////////////////////////////// var jsunity = require("jsunity"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite diff --git a/js/server/tests/ahuacatl-functions.js b/js/server/tests/ahuacatl-functions.js index cbcdf48fc5..7da42d58bd 100644 --- a/js/server/tests/ahuacatl-functions.js +++ b/js/server/tests/ahuacatl-functions.js @@ -27,6 +27,7 @@ var internal = require("internal"); var jsunity = require("jsunity"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite diff --git a/js/server/tests/ahuacatl-paths.js b/js/server/tests/ahuacatl-paths.js index 98394803ed..5af4228a27 100644 --- a/js/server/tests/ahuacatl-paths.js +++ b/js/server/tests/ahuacatl-paths.js @@ -26,6 +26,9 @@ //////////////////////////////////////////////////////////////////////////////// var jsunity = require("jsunity"); +var db = require("org/arangodb").db; +var ArangoError = require("org/arangodb/arango-error").ArangoError; + //////////////////////////////////////////////////////////////////////////////// /// @brief test suite @@ -58,7 +61,7 @@ function ahuacatlQueryPathsTestSuite () { var results = [ ]; for (var i in result) { - if (!result.hasOwnProperty(i)) { + if (! result.hasOwnProperty(i)) { continue; } @@ -96,11 +99,11 @@ function ahuacatlQueryPathsTestSuite () { //////////////////////////////////////////////////////////////////////////////// setUp : function () { - internal.db._drop("UnitTestsAhuacatlUsers"); - internal.db._drop("UnitTestsAhuacatlUserRelations"); + db._drop("UnitTestsAhuacatlUsers"); + db._drop("UnitTestsAhuacatlUserRelations"); - users = internal.db._create("UnitTestsAhuacatlUsers"); - relations = internal.db._createEdgeCollection("UnitTestsAhuacatlUserRelations"); + users = db._create("UnitTestsAhuacatlUsers"); + relations = db._createEdgeCollection("UnitTestsAhuacatlUserRelations"); docs["John"] = users.save({ "id" : 100, "name" : "John" }); docs["Fred"] = users.save({ "id" : 101, "name" : "Fred" }); @@ -115,8 +118,8 @@ function ahuacatlQueryPathsTestSuite () { //////////////////////////////////////////////////////////////////////////////// tearDown : function () { - internal.db._drop("UnitTestsAhuacatlUsers"); - internal.db._drop("UnitTestsAhuacatlUserRelations"); + db._drop("UnitTestsAhuacatlUsers"); + db._drop("UnitTestsAhuacatlUserRelations"); }, //////////////////////////////////////////////////////////////////////////////// @@ -341,14 +344,15 @@ function ahuacatlQueryTraverseTestSuite () { itemOrder: "forward", minDepth: 1, uniqueness: { - vertices: "global" + vertices: "global", + edges: "none" }, _sort: true }; var actual = executeQuery("FOR p IN TRAVERSE(@@v, @@e, '" + vn + "/A', 'outbound', " + JSON.stringify(config) + ") RETURN p.vertex._key", { "@v" : vn, "@e" : en }).getRows(); - assertEqual([ "A", "B", "C", "D" ], actual); + assertEqual([ "B", "C", "D" ], actual); }, //////////////////////////////////////////////////////////////////////////////// @@ -361,6 +365,10 @@ function ahuacatlQueryTraverseTestSuite () { order: "preorder", itemOrder: "forward", maxDepth: 2, + uniqueness: { + vertices: "none", + edges: "none" + }, _sort: true }; @@ -379,6 +387,10 @@ function ahuacatlQueryTraverseTestSuite () { order: "preorder", itemOrder: "forward", maxDepth: 3, + uniqueness: { + vertices: "none", + edges: "none" + }, _sort: true }; @@ -398,12 +410,16 @@ function ahuacatlQueryTraverseTestSuite () { itemOrder: "forward", minDepth: 1, maxDepth: 3, + uniqueness: { + vertices: "none", + edges: "none" + }, _sort: true }; var actual = executeQuery("FOR p IN TRAVERSE(@@v, @@e, '" + vn + "/A', 'outbound', " + JSON.stringify(config) + ") RETURN p.vertex._key", { "@v" : vn, "@e" : en }).getRows(); - assertEqual([ "A", "B", "C", "A", "D", "C", "A" ], actual); + assertEqual([ "B", "C", "A", "D", "C", "A" ], actual); }, //////////////////////////////////////////////////////////////////////////////// @@ -416,7 +432,8 @@ function ahuacatlQueryTraverseTestSuite () { order: "preorder", itemOrder: "forward", uniqueness: { - vertices: "global" + vertices: "global", + edges: "none" }, _sort: true }; @@ -436,7 +453,8 @@ function ahuacatlQueryTraverseTestSuite () { order: "preorder", itemOrder: "forward", uniqueness: { - vertices: "path" + vertices: "path", + edges: "none" }, _sort: true }; @@ -456,12 +474,29 @@ function ahuacatlQueryTraverseTestSuite () { order: "preorder", itemOrder: "forward", maxDepth: 2, + uniqueness: { + vertices: "none", + edges: "none" + }, _sort: true }; var actual = executeQuery("FOR p IN TRAVERSE(@@v, @@e, '" + vn + "/A', 'any', " + JSON.stringify(config) + ") RETURN p.vertex._key", { "@v" : vn, "@e" : en }).getRows(); assertEqual([ "A", "B", "A", "C", "D", "A", "C", "C", "B", "A", "D" ], actual); + }, + +//////////////////////////////////////////////////////////////////////////////// +/// @brief test non-existing start vertex +//////////////////////////////////////////////////////////////////////////////// + + testTraversalNonExisting : function () { + var config = { + }; + + var actual = executeQuery("FOR p IN TRAVERSE(@@v, @@e, '" + vn + "/FOX', 'any', " + JSON.stringify(config) + ") RETURN p.vertex._key", { "@v" : vn, "@e" : en }).getRows(); + + assertEqual([ ], actual); } }; diff --git a/js/server/tests/ahuacatl-queries-collection.js b/js/server/tests/ahuacatl-queries-collection.js index 835e68eaf5..4e3e21f0bf 100644 --- a/js/server/tests/ahuacatl-queries-collection.js +++ b/js/server/tests/ahuacatl-queries-collection.js @@ -26,6 +26,8 @@ //////////////////////////////////////////////////////////////////////////////// var jsunity = require("jsunity"); +var internal = require("internal"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite diff --git a/js/server/tests/ahuacatl-queries-fulltext.js b/js/server/tests/ahuacatl-queries-fulltext.js index d3f994ef16..50143e241d 100644 --- a/js/server/tests/ahuacatl-queries-fulltext.js +++ b/js/server/tests/ahuacatl-queries-fulltext.js @@ -25,15 +25,16 @@ /// @author Copyright 2012, triAGENS GmbH, Cologne, Germany //////////////////////////////////////////////////////////////////////////////// -var internal = require("internal"); +var db = require("org/arangodb").db; var jsunity = require("jsunity"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; +var ERRORS = require("org/arangodb").errors; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite //////////////////////////////////////////////////////////////////////////////// function ahuacatlFulltextTestSuite () { - var errors = internal.errors; var cn = "UnitTestsAhuacatlFulltext"; var fulltext; @@ -79,9 +80,9 @@ function ahuacatlFulltextTestSuite () { //////////////////////////////////////////////////////////////////////////////// setUp : function () { - internal.db._drop(cn); + db._drop(cn); - fulltext = internal.db._create(cn); + fulltext = db._create(cn); fulltext.ensureFulltextIndex("text"); }, @@ -90,7 +91,7 @@ function ahuacatlFulltextTestSuite () { //////////////////////////////////////////////////////////////////////////////// tearDown : function () { - internal.db._drop(cn); + db._drop(cn); }, //////////////////////////////////////////////////////////////////////////////// @@ -168,9 +169,9 @@ function ahuacatlFulltextTestSuite () { //////////////////////////////////////////////////////////////////////////////// testNonIndexed : function () { - assertEqual(errors.ERROR_QUERY_FULLTEXT_INDEX_MISSING.code, getErrorCode(function() { AHUACATL_RUN("RETURN FULLTEXT(" + fulltext.name() + ", 'bang', 'search')"); } )); - assertEqual(errors.ERROR_QUERY_FULLTEXT_INDEX_MISSING.code, getErrorCode(function() { AHUACATL_RUN("RETURN FULLTEXT(" + fulltext.name() + ", 'texts', 'foo')"); } )); - assertEqual(errors.ERROR_QUERY_COLLECTION_NOT_FOUND.code, getErrorCode(function() { AHUACATL_RUN("RETURN FULLTEXT(NotExistingFooCollection, 'text', 'foo')"); } )); + assertEqual(ERRORS.ERROR_QUERY_FULLTEXT_INDEX_MISSING.code, getErrorCode(function() { AHUACATL_RUN("RETURN FULLTEXT(" + fulltext.name() + ", 'bang', 'search')"); } )); + assertEqual(ERRORS.ERROR_QUERY_FULLTEXT_INDEX_MISSING.code, getErrorCode(function() { AHUACATL_RUN("RETURN FULLTEXT(" + fulltext.name() + ", 'texts', 'foo')"); } )); + assertEqual(ERRORS.ERROR_QUERY_COLLECTION_NOT_FOUND.code, getErrorCode(function() { AHUACATL_RUN("RETURN FULLTEXT(NotExistingFooCollection, 'text', 'foo')"); } )); } } diff --git a/js/server/tests/ahuacatl-queries-geo.js b/js/server/tests/ahuacatl-queries-geo.js index 4c48395286..be9acb852a 100644 --- a/js/server/tests/ahuacatl-queries-geo.js +++ b/js/server/tests/ahuacatl-queries-geo.js @@ -25,15 +25,16 @@ /// @author Copyright 2012, triAGENS GmbH, Cologne, Germany //////////////////////////////////////////////////////////////////////////////// -var internal = require("internal"); var jsunity = require("jsunity"); +var db = require("org/arangodb").db; +var ArangoError = require("org/arangodb/arango-error").ArangoError; +var ERRORS = require("org/arangodb").errors; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite //////////////////////////////////////////////////////////////////////////////// function ahuacatlGeoTestSuite () { - var errors = internal.errors; var locations = null; var locationsNon = null; @@ -59,7 +60,7 @@ function ahuacatlGeoTestSuite () { var results = [ ]; for (var i in result) { - if (!result.hasOwnProperty(i)) { + if (! result.hasOwnProperty(i)) { continue; } @@ -113,7 +114,7 @@ function ahuacatlGeoTestSuite () { //////////////////////////////////////////////////////////////////////////////// setUp : function () { - locations = internal.db.UnitTestsAhuacatlLocations; + locations = db.UnitTestsAhuacatlLocations; if (locations.count() == 0) { for (var lat = -40; lat <= 40; ++lat) { for (var lon = -40; lon <= 40; ++lon) { @@ -124,7 +125,7 @@ function ahuacatlGeoTestSuite () { locations.ensureGeoIndex("latitude", "longitude"); } - locationsNon = internal.db.UnitTestsAhuacatlLocationsNon; + locationsNon = db.UnitTestsAhuacatlLocationsNon; if (locationsNon.count() == 0) { for (var lat = -40; lat <= 40; ++lat) { for (var lon = -40; lon <= 40; ++lon) { @@ -233,8 +234,8 @@ function ahuacatlGeoTestSuite () { //////////////////////////////////////////////////////////////////////////////// testNonIndexed : function () { - assertEqual(errors.ERROR_QUERY_GEO_INDEX_MISSING.code, getErrorCode(function() { AHUACATL_RUN("RETURN NEAR(" + locationsNon.name() + ", 0, 0, 10)"); } )); - assertEqual(errors.ERROR_QUERY_GEO_INDEX_MISSING.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN(" + locationsNon.name() + ", 0, 0, 10)"); } )); + assertEqual(ERRORS.ERROR_QUERY_GEO_INDEX_MISSING.code, getErrorCode(function() { AHUACATL_RUN("RETURN NEAR(" + locationsNon.name() + ", 0, 0, 10)"); } )); + assertEqual(ERRORS.ERROR_QUERY_GEO_INDEX_MISSING.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN(" + locationsNon.name() + ", 0, 0, 10)"); } )); }, //////////////////////////////////////////////////////////////////////////////// @@ -242,13 +243,13 @@ function ahuacatlGeoTestSuite () { //////////////////////////////////////////////////////////////////////////////// testInvalidCollectionArgument : function () { - assertEqual(errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN(\"" + locationsNon.name() + "\", 0, 0, 10)"); } )); - assertEqual(errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN(1234, 0, 0, 10)"); } )); - assertEqual(errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN(false, 0, 0, 10)"); } )); - assertEqual(errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN(true, 0, 0, 10)"); } )); - assertEqual(errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN([ ], 0, 0, 10)"); } )); - assertEqual(errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN({ }, 0, 0, 10)"); } )); - assertEqual(errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN(@name, 0, 0, 10)"); } )); + assertEqual(ERRORS.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN(\"" + locationsNon.name() + "\", 0, 0, 10)"); } )); + assertEqual(ERRORS.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN(1234, 0, 0, 10)"); } )); + assertEqual(ERRORS.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN(false, 0, 0, 10)"); } )); + assertEqual(ERRORS.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN(true, 0, 0, 10)"); } )); + assertEqual(ERRORS.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN([ ], 0, 0, 10)"); } )); + assertEqual(ERRORS.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN({ }, 0, 0, 10)"); } )); + assertEqual(ERRORS.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { AHUACATL_RUN("RETURN WITHIN(@name, 0, 0, 10)"); } )); } } diff --git a/js/server/tests/ahuacatl-queries-noncollection.js b/js/server/tests/ahuacatl-queries-noncollection.js index 1d32f62e21..ed9edb9feb 100644 --- a/js/server/tests/ahuacatl-queries-noncollection.js +++ b/js/server/tests/ahuacatl-queries-noncollection.js @@ -26,6 +26,7 @@ //////////////////////////////////////////////////////////////////////////////// var jsunity = require("jsunity"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite diff --git a/js/server/tests/ahuacatl-queries-optimiser-limit.js b/js/server/tests/ahuacatl-queries-optimiser-limit.js index bd72ff06c7..a79c668c80 100644 --- a/js/server/tests/ahuacatl-queries-optimiser-limit.js +++ b/js/server/tests/ahuacatl-queries-optimiser-limit.js @@ -26,6 +26,8 @@ //////////////////////////////////////////////////////////////////////////////// var jsunity = require("jsunity"); +var internal = require("internal"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite diff --git a/js/server/tests/ahuacatl-queries-optimiser-ref.js b/js/server/tests/ahuacatl-queries-optimiser-ref.js index 8fe63eb1bf..4558187fe8 100644 --- a/js/server/tests/ahuacatl-queries-optimiser-ref.js +++ b/js/server/tests/ahuacatl-queries-optimiser-ref.js @@ -26,6 +26,8 @@ //////////////////////////////////////////////////////////////////////////////// var jsunity = require("jsunity"); +var internal = require("internal"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite diff --git a/js/server/tests/ahuacatl-queries-optimiser-sort.js b/js/server/tests/ahuacatl-queries-optimiser-sort.js index a3e137d334..6fe39975a7 100644 --- a/js/server/tests/ahuacatl-queries-optimiser-sort.js +++ b/js/server/tests/ahuacatl-queries-optimiser-sort.js @@ -26,6 +26,8 @@ //////////////////////////////////////////////////////////////////////////////// var jsunity = require("jsunity"); +var internal = require("internal"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite diff --git a/js/server/tests/ahuacatl-queries-simple.js b/js/server/tests/ahuacatl-queries-simple.js index 3b0aa9c395..adccc83954 100644 --- a/js/server/tests/ahuacatl-queries-simple.js +++ b/js/server/tests/ahuacatl-queries-simple.js @@ -26,6 +26,7 @@ //////////////////////////////////////////////////////////////////////////////// var jsunity = require("jsunity"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite diff --git a/js/server/tests/ahuacatl-queries-variables.js b/js/server/tests/ahuacatl-queries-variables.js index 67409fe5e3..036aaa281a 100644 --- a/js/server/tests/ahuacatl-queries-variables.js +++ b/js/server/tests/ahuacatl-queries-variables.js @@ -26,6 +26,7 @@ //////////////////////////////////////////////////////////////////////////////// var jsunity = require("jsunity"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite diff --git a/js/server/tests/ahuacatl-relational.js b/js/server/tests/ahuacatl-relational.js index e6ed35c4b4..b45302dba6 100644 --- a/js/server/tests/ahuacatl-relational.js +++ b/js/server/tests/ahuacatl-relational.js @@ -27,6 +27,7 @@ var internal = require("internal"); var jsunity = require("jsunity"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite diff --git a/js/server/tests/ahuacatl-subquery.js b/js/server/tests/ahuacatl-subquery.js index 2e58aeb394..7c1b5797ae 100644 --- a/js/server/tests/ahuacatl-subquery.js +++ b/js/server/tests/ahuacatl-subquery.js @@ -25,7 +25,6 @@ /// @author Copyright 2012, triAGENS GmbH, Cologne, Germany //////////////////////////////////////////////////////////////////////////////// -var internal = require("internal"); var jsunity = require("jsunity"); //////////////////////////////////////////////////////////////////////////////// diff --git a/js/server/tests/ahuacatl-ternary.js b/js/server/tests/ahuacatl-ternary.js index b1f99069e1..fd58dd4504 100644 --- a/js/server/tests/ahuacatl-ternary.js +++ b/js/server/tests/ahuacatl-ternary.js @@ -27,6 +27,7 @@ var internal = require("internal"); var jsunity = require("jsunity"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite diff --git a/js/server/tests/import.js b/js/server/tests/import.js index e231bd930f..d0ac0a0fb7 100644 --- a/js/server/tests/import.js +++ b/js/server/tests/import.js @@ -27,6 +27,7 @@ var internal = require("internal"); var jsunity = require("jsunity"); +var ArangoError = require("org/arangodb/arango-error").ArangoError; //////////////////////////////////////////////////////////////////////////////// /// @brief test suite