浏览代码

Create test utils. Test all toolbars.

Bentley James Oakes 7 年之前
父节点
当前提交
be8fb250cf
共有 3 个文件被更改,包括 102 次插入108 次删除
  1. 4 40
      tests/03_model_test.js
  2. 12 68
      tests/04_toolbar_test.js
  3. 86 0
      tests/test_utils.js

+ 4 - 40
tests/03_model_test.js

@@ -1,54 +1,19 @@
-
-function loadModel(client, fnames){
-
-    for (const name of fnames) {
-
-        console.log("Loading: " + name);
-        client.execute(
-            function (fname) {
-                _loadModel(fname);
-            }, [name], null
-        );
-
-        client.pause(1000);
-
-        client.getTitle(function(title) {
-            this.assert.ok(title.includes(name), "File: " + name + " is opened");
-        });
-    }
-
-}
+let test_utils = require('./test_utils');
 
 module.exports = {
 
     beforeEach : function (client) {
         client.url('http://localhost:8124/atompm').pause(300);
-
-
     },
 
     'Login' : function (client) {
-
-        client.execute(
-            function() {
-                UserManagement.login('testuser');
-            }, [], null
-        );
-
-        client.pause(300);
-
-        client.getTitle(function(title) {
-            this.assert.ok(title.includes("AToMPM - [Unnamed]"), "AToMPM is opened");
-        });
+        test_utils.login(client);
     },
 
     'Load model' : function (client) {
 
         let filename = 'Formalisms/ClassicDEVS/ClassicDEVS.model';
-
-
-        loadModel(client, [filename]);
-
+        test_utils.load_model(client, [filename]);
     },
 
     'Load two models' : function (client) {
@@ -58,10 +23,9 @@ module.exports = {
             'Formalisms/Annotation/AnnotationMM.model'
         ];
 
-        loadModel(client, filenames);
+        test_utils.load_model(client, filenames);
     },
 
-
     after : function (client) {
         client.end();
     },

+ 12 - 68
tests/04_toolbar_test.js

@@ -1,91 +1,35 @@
-function loadToolbar(client, fnames) {
-
-    for (let name of fnames) {
-
-        client.execute(
-            function (fname) {
-                _loadToolbar(fname);
-            }, [name], null
-        );
-
-        let toolbar_name = name.replace(/\//g, "\\2f ").replace(/\./g, "\\2e ");
-        toolbar_name = "#div_toolbar_" + toolbar_name;
-
-        client.waitForElementPresent(toolbar_name, 2000, "Check for toolbar: " + name);
-    }
-
-}
 
+let test_utils = require('./test_utils');
 let user = "./users/testuser/";
-let glob = require('glob');
-
-let getFiles = function (client, dir, pattern, failing_files) {
-    glob(dir + pattern, callback(client, failing_files));
-};
-
-function callback(client, failing_files) {
-    return function (err, res) {
-        if (err) {
-            assert(false, "Error in reading directory: " + user + "Toolbars");
-        } else {
-
-            let filenames = [];
-            for (let i in res) {
-                let fn = res[i];
-                fn = "\/" + fn.replace(user, "");
-
-                //skip files we know will fail
-                if (!(failing_files.includes(fn))){
-                    filenames.push(fn);
-                }
-            }
-
-            //console.log(filenames);
-            loadToolbar(client, filenames);
-        }
-    }
-}
-
 
 module.exports = {
 
     beforeEach: function (client) {
         client.url('http://localhost:8124/atompm').pause(300);
-
     },
 
     'Login': function (client) {
 
-        client.execute(
-            function () {
-                UserManagement.login('testuser');
-            }, [], null
-        );
-
-        client.pause(1000);
-
-        client.getTitle(function (title) {
-            this.assert.ok(title.includes("AToMPM - [Unnamed]"), "AToMPM is opened");
-        });
+        test_utils.login(client);
     },
 
     'Load main menu toolbar': function (client) {
         let filename = 'Toolbars/MainMenu/MainMenu.buttons.model';
-        loadToolbar(client, [filename]);
+        test_utils.load_toolbar(client, [filename]);
     },
 
-    'Load all metamodels' : function (client) {
+    'Load all toolbars': function (client) {
+
+        console.log("Testing toolbars...");
+        test_utils.getFiles(client, user, '/**/*.buttons.model');
 
+        console.log("Testing metamodels...");
         let failing_files = ['/Formalisms/__Templates__/ConcreteSyntaxTemplate.defaultIcons.metamodel'];
-        getFiles(client, user, '/**/*Icons.metamodel', failing_files);
-    },
+        test_utils.getFiles(client, user, '/**/*Icons.metamodel', failing_files);
 
-    // 'Load all pattern metamodels' : function (client) {
-    //     getFiles(client, user, '/**/*Icons.pattern.metamodel');
-    //     // let filename = '\\/Formalisms/__LanguageSyntax__/SimpleClassDiagram/SimpleClassDiagram.defaultIcons.metamodel';
-    //      //loadToolbar(client, [filename]);
-    //
-    // },
+        console.log("Testing pattern metamodels...");
+        test_utils.getFiles(client, user, '/**/*Icons.pattern.metamodel');
+    },
 
     after: function (client) {
         client.end();

+ 86 - 0
tests/test_utils.js

@@ -0,0 +1,86 @@
+function login(client) {
+    client.execute(
+        function () {
+            UserManagement.login('testuser');
+        }, [], null
+    );
+
+    client.pause(300);
+
+    client.getTitle(function (title) {
+        this.assert.ok(title.includes("AToMPM - [Unnamed]"), "AToMPM is opened");
+    });
+}
+
+function load_model(client, fnames) {
+
+    for (const name of fnames) {
+        client.execute(
+            function (fname) {
+                _loadModel(fname);
+            }, [name], null
+        );
+
+        client.pause(1000);
+
+        client.getTitle(function (title) {
+            this.assert.ok(title.includes(name), "Check for model: " + name);
+        });
+    }
+
+}
+
+function load_toolbar(client, fnames) {
+
+    for (let name of fnames) {
+
+        client.execute(
+            function (fname) {
+                _loadToolbar(fname);
+            }, [name], null
+        );
+
+        let toolbar_name = name.replace(/\//g, "\\2f ").replace(/\./g, "\\2e ");
+        toolbar_name = "#div_toolbar_" + toolbar_name;
+
+        client.waitForElementPresent(toolbar_name, 2000, "Check for toolbar: " + name);
+    }
+
+}
+
+let user = "./users/testuser/";
+let glob = require('glob');
+
+let getFiles = function (client, dir, pattern, failing_files) {
+    glob(dir + pattern, callback(client, failing_files));
+};
+
+function callback(client, failing_files) {
+    return function (err, res) {
+        if (err) {
+            assert(false, "Error in reading directory: " + user + "Toolbars");
+        } else {
+
+            let filenames = [];
+            for (let i in res) {
+                let fn = res[i];
+                fn = "\/" + fn.replace(user, "");
+
+                //skip files we know will fail
+                if (failing_files == undefined || !failing_files.includes(fn)) {
+                    filenames.push(fn);
+                }
+            }
+
+            //console.log(filenames);
+            load_toolbar(client, filenames);
+        }
+    }
+}
+
+module.exports = {
+    login,
+    load_model,
+    load_toolbar,
+    getFiles
+};