From 412e5280bc9baebf7ce74c8f0a9d5af4a65a3c65 Mon Sep 17 00:00:00 2001 From: Jan Date: Wed, 4 Sep 2019 17:44:00 +0200 Subject: [PATCH] fix audit test (#9886) --- arangod/VocBase/Methods/Collections.cpp | 2 + .../common/shell/shell-view-arangosearch.js | 125 ++++++++++-------- 2 files changed, 73 insertions(+), 54 deletions(-) diff --git a/arangod/VocBase/Methods/Collections.cpp b/arangod/VocBase/Methods/Collections.cpp index 51b40314e3..350e948215 100644 --- a/arangod/VocBase/Methods/Collections.cpp +++ b/arangod/VocBase/Methods/Collections.cpp @@ -257,9 +257,11 @@ Result Collections::create(TRI_vocbase_t& vocbase, TRI_ASSERT(builder.isOpenArray()); if (info.name.empty()) { + events::CreateCollection(vocbase.name(), info.name, TRI_ERROR_ARANGO_ILLEGAL_NAME); return TRI_ERROR_ARANGO_ILLEGAL_NAME; } else if (info.collectionType != TRI_col_type_e::TRI_COL_TYPE_DOCUMENT && info.collectionType != TRI_col_type_e::TRI_COL_TYPE_EDGE) { + events::CreateCollection(vocbase.name(), info.name, TRI_ERROR_ARANGO_COLLECTION_TYPE_INVALID); return TRI_ERROR_ARANGO_COLLECTION_TYPE_INVALID; } TRI_ASSERT(info.properties.isObject()); diff --git a/tests/js/common/shell/shell-view-arangosearch.js b/tests/js/common/shell/shell-view-arangosearch.js index 5bd25f3dde..a4554621c7 100644 --- a/tests/js/common/shell/shell-view-arangosearch.js +++ b/tests/js/common/shell/shell-view-arangosearch.js @@ -102,6 +102,7 @@ function ViewSuite () { fail(); } catch (err) { assertEqual(ERRORS.ERROR_ARANGO_DUPLICATE_NAME.code, err.errorNum); + } finally { var abc = db._view("abc"); abc.drop(); } @@ -111,12 +112,15 @@ function ViewSuite () { /// @brief bad name (conflict with collection) //////////////////////////////////////////////////////////////////////////// testErrorHandlingBadNameDuplicateOfCollection : function () { + db._dropView("abc"); + db._drop("abc"); try { db._create("abc"); db._createView("abc", "arangosearch", {}); fail(); } catch (err) { assertEqual(ERRORS.ERROR_ARANGO_DUPLICATE_NAME.code, err.errorNum); + } finally { var abc = db._collection("abc"); abc.drop(); } @@ -126,6 +130,7 @@ function ViewSuite () { /// @brief get non-existent //////////////////////////////////////////////////////////////////////////// testErrorHandlingGetMissing : function () { + db._dropView("abc"); var abc = db._view("abc"); assertEqual(abc, null); }, @@ -134,12 +139,16 @@ function ViewSuite () { /// @brief modify with unacceptable properties //////////////////////////////////////////////////////////////////////////// testErrorHandlingModifyUnacceptable : function () { + db._dropView("abc"); var abc = db._createView("abc", "arangosearch", { "consolidationIntervalMsec": 17 }); - assertEqual(abc.name(), "abc"); - assertEqual(abc.properties().consolidationIntervalMsec, 17); - abc.properties({ "bogus": "junk", "consolidationIntervalMsec": 7 }); - assertEqual(abc.properties().consolidationIntervalMsec, 7); - abc.drop(); + try { + assertEqual(abc.name(), "abc"); + assertEqual(abc.properties().consolidationIntervalMsec, 17); + abc.properties({ "bogus": "junk", "consolidationIntervalMsec": 7 }); + assertEqual(abc.properties().consolidationIntervalMsec, 7); + } finally { + abc.drop(); + } }, //////////////////////////////////////////////////////////////////////////// @@ -149,76 +158,84 @@ function ViewSuite () { db._dropView("abc"); db._dropView("def"); db._createView("abc", "arangosearch", { "consolidationIntervalMsec": 10 }); - db._createView("def", "arangosearch", { "consolidationIntervalMsec": 3 }); var abc = db._view("abc"); - var def = db._view("def"); - var propA = abc.properties(); - var propD = def.properties(); - assertEqual(abc.name(), "abc"); - assertEqual(abc.type(), "arangosearch"); - assertEqual(propA.consolidationIntervalMsec, 10); - assertEqual(def.name(), "def"); - assertEqual(def.type(), "arangosearch"); - assertEqual(propD.consolidationIntervalMsec, 3); - abc.drop(); - def.drop(); - assertNull(db._view("abc")); - assertNull(db._view("def")); - }, - - //////////////////////////////////////////////////////////////////////////// - /// @brief retrieve empty list of views - //////////////////////////////////////////////////////////////////////////// - testEmptyList : function () { - var views = db._views(); - assertTrue(Array.isArray(views)); - assertEqual(views.length, 0); + try { + db._createView("def", "arangosearch", { "consolidationIntervalMsec": 3 }); + var def = db._view("def"); + try { + var propA = abc.properties(); + var propD = def.properties(); + assertEqual(abc.name(), "abc"); + assertEqual(abc.type(), "arangosearch"); + assertEqual(propA.consolidationIntervalMsec, 10); + assertEqual(def.name(), "def"); + assertEqual(def.type(), "arangosearch"); + assertEqual(propD.consolidationIntervalMsec, 3); + } finally { + def.drop(); + assertNull(db._view("def")); + } + } finally { + abc.drop(); + assertNull(db._view("abc")); + } }, //////////////////////////////////////////////////////////////////////////// /// @brief retrieve short list of views //////////////////////////////////////////////////////////////////////////// testShortList : function () { + db._dropView("abc"); + db._dropView("def"); var abc = db._createView("abc", "arangosearch", {}); - assertEqual(abc.name(), "abc"); - var def = db._createView("def", "arangosearch", {}); - assertEqual(def.name(), "def"); - var views = db._views(); + try { + assertEqual(abc.name(), "abc"); + var def = db._createView("def", "arangosearch", {}); + try { + assertEqual(def.name(), "def"); + var views = db._views(); - let expectedViews = new Set(); - expectedViews.add(abc.name()); - expectedViews.add(def.name()); + let expectedViews = new Set(); + expectedViews.add(abc.name()); + expectedViews.add(def.name()); - assertTrue(Array.isArray(views)); - assertEqual(views.length, expectedViews.size); - for (var i = 0; i < views.length; i++) { - expectedViews.delete(views[i].name()); + assertTrue(Array.isArray(views)); + assertTrue(views.length >= expectedViews.size); + for (var i = 0; i < views.length; i++) { + expectedViews.delete(views[i].name()); + } + assertEqual(0, expectedViews.size); + } finally { + def.drop(); + } + } finally { + abc.drop(); } - assertEqual(0, expectedViews.size); - abc.drop(); - def.drop(); }, //////////////////////////////////////////////////////////////////////////// /// @brief modify properties //////////////////////////////////////////////////////////////////////////// testModifyProperties : function () { + db._dropView("abc"); var abc = db._createView("abc", "arangosearch", { "consolidationIntervalMsec": 10 }); - var props = abc.properties(); + try { + var props = abc.properties(); - assertEqual(abc.name(), "abc"); - assertEqual(abc.type(), "arangosearch"); - assertEqual(props.consolidationIntervalMsec, 10); + assertEqual(abc.name(), "abc"); + assertEqual(abc.type(), "arangosearch"); + assertEqual(props.consolidationIntervalMsec, 10); - abc.properties({ "consolidationIntervalMsec": 7 }); - abc = db._view("abc"); - props = abc.properties(); + abc.properties({ "consolidationIntervalMsec": 7 }); + abc = db._view("abc"); + props = abc.properties(); - assertEqual(abc.name(), "abc"); - assertEqual(abc.type(), "arangosearch"); - assertEqual(props.consolidationIntervalMsec, 7); - - abc.drop(); + assertEqual(abc.name(), "abc"); + assertEqual(abc.type(), "arangosearch"); + assertEqual(props.consolidationIntervalMsec, 7); + } finally { + abc.drop(); + } }, };