1 /*
   2  * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 /**
  25  * This is not a test - but a framework to run other tests.
  26  *
  27  * @subtest
  28  */
  29 
  30 // Assert is TestNG's Assert class
  31 Object.defineProperty(this, "Assert", {
  32     configurable: true,
  33     enumerable: false,
  34     writable: true,
  35     value: Packages.org.testng.Assert
  36 });
  37 
  38 // fail function to call TestNG Assert.fail
  39 Object.defineProperty(this, "fail", {
  40     configurable: true,
  41     enumerable: false,
  42     writable: true,
  43     // 'error' is optional. if present it has to be
  44     // an ECMAScript Error object or java Throwable object
  45     value: function (message, error) {
  46         var throwable = null;
  47         if (typeof error != 'undefined') {
  48             if (error instanceof java.lang.Throwable) {
  49                 throwable = error;
  50             } else if (error.nashornException instanceof java.lang.Throwable) {
  51                 throwable = error.nashornException;
  52             }
  53         }
  54 
  55         if (throwable != null) {
  56             // call the fail version that accepts Throwable argument
  57             Assert.fail(message, throwable);
  58         } else {
  59             // call the fail version that accepts just message
  60             Assert.fail(message);
  61         }
  62     }
  63 });
  64 
  65 Object.defineProperty(this, "printError", {
  66     configurable: true,
  67     enumerable: false,
  68     writable: true,
  69     value: function (e) {
  70         var msg = e.message;
  71         var str = e.name + ':';
  72         if (e.lineNumber > 0) {
  73             str += e.lineNumber + ':';
  74         }
  75         if (e.columnNumber > 0) {
  76             str += e.columnNumber + ':';
  77         }
  78         str += msg.substring(msg.indexOf(' ') + 1);
  79         print(str);
  80     }
  81 });
  82