Browse Source

Add test for invalid files and deleted user.

Bentley James Oakes 6 years ago
parent
commit
8ef79e36f7
1 changed files with 135 additions and 0 deletions
  1. 135 0
      tests/08_missing_files.js

+ 135 - 0
tests/08_missing_files.js

@@ -0,0 +1,135 @@
+let _fs = require('fs');
+
+let deleteFolderRecursive = function (path) {
+    if (_fs.existsSync(path)) {
+        _fs.readdirSync(path).forEach(function (file, index) {
+            let curPath = path + "/" + file;
+            console.log("Deleting: " + curPath);
+
+            if (_fs.lstatSync(curPath).isDirectory()) { // recurse
+                deleteFolderRecursive(curPath);
+            } else { // delete file
+                _fs.unlinkSync(curPath);
+            }
+        });
+        _fs.rmdirSync(path);
+    }
+};
+
+module.exports = {
+
+
+    'Signup user': function (client) {
+
+        client.url('http://localhost:8124/atompm').pause(300);
+
+        client.execute(
+            function () {
+                UserManagement.validateCredentials('userremove', 'test');
+            }, [], null
+        );
+
+        client.pause(500);
+
+        let user_exists = false;
+        client.getText('div[id=div_login_error]', function (result) {
+            user_exists = result.value.includes('login failed');
+
+        });
+
+        if (user_exists == false) {
+            client.execute(
+                function () {
+                    UserManagement.signup('userremove', 'test');
+                }, [], null
+            );
+
+        }
+
+        client.pause(500);
+
+        client.execute(
+            function () {
+                UserManagement.login('userremove');
+            }, [], null
+        );
+
+        client.pause(500);
+        client.getTitle(function (title) {
+            this.assert.ok(title.includes("AToMPM - [Unnamed]"), "AToMPM is opened");
+        });
+
+    },
+
+    'Load Missing Toolbar': function (client) {
+
+        let filename = './toolbars/missing.metamodel';
+        client.execute(
+            function () {
+                DataUtils.loadbm('./toolbars/missing.metamodel');
+            }, [], null
+        );
+
+        client.waitForElementPresent("#dialog_btn", 2000, "Check for toolbar loading error: " + filename);
+        client.element('css selector', '#dialog_btn', function (result) {
+            if (result.status != -1) {
+                //Dialog has popped up, so check the text and click the button
+                client.assert.containsText("#div_dialog_0", "File not found");
+                client.click("#dialog_btn");
+
+                client.verify.ok(true, "Toolbar: " + filename + " failed to load!"); //don't stop testing
+            }
+        });
+
+    },
+
+    'Load Missing Model': function (client) {
+
+        let filename = './test/missing.model';
+        client.execute(
+            function () {
+                DataUtils.loadm('./test/missing.model');
+            }, [], null
+        );
+
+        client.waitForElementPresent("#dialog_btn", 2000, "Check for model loading error: " + filename);
+        client.element('css selector', '#dialog_btn', function (result) {
+            if (result.status != -1) {
+                //Dialog has popped up, so check the text and click the button
+                client.assert.containsText("#div_dialog_0", "File cannot be read");
+                client.click("#dialog_btn");
+
+                client.verify.ok(true, "Model: " + filename + " failed to load!"); //don't stop testing
+            }
+        });
+
+    },
+
+    'Delete and Click Toolbar': function (client) {
+        client.pause(500);
+        deleteFolderRecursive("./users/userremove");
+
+        client.pause(1000);
+
+        let load_button = "#\\2f Toolbars\\2f MainMenu\\2f MainMenu\\2e buttons\\2e model\\2f loadModel";
+        client.waitForElementPresent(load_button, 1000, "Looking for load button")
+            .click(load_button)
+            .waitForElementPresent("#dialog_btn", 1000, "Load menu opens");
+
+
+        client.waitForElementPresent("#dialog_btn", 2000, "Check for file list loading error");
+        client.element('css selector', '#dialog_btn', function (result) {
+            if (result.status != -1) {
+                //Dialog has popped up, so check the text and click the button
+                client.assert.containsText("#div_dialog_0", "Cannot load file list");
+                client.click("#dialog_btn");
+
+                client.verify.ok(true, "File list failed to load!"); //don't stop testing
+            }
+        });
+    },
+
+    after: function (client) {
+        client.end();
+    },
+};