diff options
| -rw-r--r-- | src/scenario/Scenario.js | 7 | ||||
| -rwxr-xr-x | test.sh | 4 | ||||
| -rw-r--r-- | test/BinderTest.js | 18 | ||||
| -rw-r--r-- | test/directivesSpec.js | 4 | ||||
| -rw-r--r-- | test/widgetsSpec.js | 26 | 
5 files changed, 30 insertions, 29 deletions
| diff --git a/src/scenario/Scenario.js b/src/scenario/Scenario.js index ba206632..842c9dd3 100644 --- a/src/scenario/Scenario.js +++ b/src/scenario/Scenario.js @@ -4,10 +4,10 @@   */  // Public namespace -angular.scenario = {}; +angular.scenario = angular.scenario || {};  // Namespace for the UI -angular.scenario.ui = {}; +angular.scenario.ui = angular.scenario.ui || {};  /**   * Defines a new DSL statement. If your factory function returns a Future @@ -104,7 +104,8 @@ function asyncForEach(list, iterator, done) {  function browserTrigger(element, type) { -  if (!element.nodeName) element = element[0]; +  if (element && !element.nodeName) element = element[0]; +  if (!element) return;    if (!type) {      type = {          'text':            'change', @@ -3,5 +3,5 @@ if [[ $tests = "" ]]; then    tests="all"  fi -#java -jar lib/jstestdriver/JsTestDriver.jar --tests "$tests" -java -jar lib/jstestdriver/JsTestDriver.jar --tests "$tests" --config jsTestDriver-jquery.conf +java -jar lib/jstestdriver/JsTestDriver.jar --tests "$tests" +#java -jar lib/jstestdriver/JsTestDriver.jar --tests "$tests" --config jsTestDriver-jquery.conf diff --git a/test/BinderTest.js b/test/BinderTest.js index daaaeffe..06f0a449 100644 --- a/test/BinderTest.js +++ b/test/BinderTest.js @@ -155,7 +155,7 @@ BinderTest.prototype.testInputTypeButtonActionExecutesInScope =  function(){    c.scope.$set("person.save", function(){      savedCalled = true;    }); -  c.node.trigger('click'); +  browserTrigger(c.node, 'click');    assertTrue(savedCalled);  }; @@ -166,7 +166,7 @@ BinderTest.prototype.testInputTypeButtonActionExecutesInScope2 =  function(){      log += 'click;';    });    expect(log).toEqual(''); -  c.node.trigger('click'); +  browserTrigger(c.node, 'click');    expect(log).toEqual('click;');  }; @@ -176,7 +176,7 @@ BinderTest.prototype.testButtonElementActionExecutesInScope =  function(){    c.scope.$set("person.save", function(){      savedCalled = true;    }); -  c.node.trigger('click'); +  browserTrigger(c.node, 'click');    assertTrue(savedCalled);  }; @@ -247,7 +247,7 @@ BinderTest.prototype.testRepeaterAdd = function(){    assertEquals('b', second.val());    first.val('ABC'); -  first.trigger('keyup'); +  browserTrigger(first, 'keyup');    assertEquals(c.scope.items[0].x, 'ABC');  }; @@ -441,7 +441,7 @@ BinderTest.prototype.testActionOnAHrefThrowsError = function(){      throw {a:'abc', b:2};    };    var input = c.node; -  input.trigger('click'); +  browserTrigger(input, 'click');    var error = fromJson(input.attr('ng-exception'));    assertEquals("abc", error.a);    assertEquals(2, error.b); @@ -449,7 +449,7 @@ BinderTest.prototype.testActionOnAHrefThrowsError = function(){    // TODO: I think that exception should never get cleared so this portion of test makes no sense    //c.scope.action = noop; -  //input.trigger('click'); +  //browserTrigger(input, 'click');    //dump(input.attr('ng-error'));    //assertFalse('error class should be cleared', input.hasClass('ng-exception'));  }; @@ -575,10 +575,10 @@ BinderTest.prototype.testItShouldDisplayErrorWhenActionIsSyntacticlyIncorect = f    var first = jqLite(c.node[0].childNodes[0]);    var second = jqLite(c.node[0].childNodes[1]); -  first.trigger('click'); +  browserTrigger(first, 'click');    assertEquals("ABC", c.scope.greeting); -  second.trigger('click'); +  browserTrigger(second, 'click');    assertTrue(second.hasClass("ng-exception"));  }; @@ -666,7 +666,7 @@ BinderTest.prototype.testItShouldUseFormaterForText = function() {    assertEquals(['a','b'], x.scope.$get('a'));    var input = x.node;    input[0].value = ' x,,yz'; -  input.trigger('change'); +  browserTrigger(input, 'change');    assertEquals(['x','yz'], x.scope.$get('a'));    x.scope.$set('a', [1 ,2, 3]);    x.scope.$eval(); diff --git a/test/directivesSpec.js b/test/directivesSpec.js index e65973dc..86540386 100644 --- a/test/directivesSpec.js +++ b/test/directivesSpec.js @@ -177,7 +177,7 @@ describe("directives", function(){        scope.$eval();        expect(scope.$get('clicked')).toBeFalsy(); -      element.trigger('click'); +      browserTrigger(element, 'click');        expect(scope.$get('clicked')).toEqual(true);      }); @@ -189,7 +189,7 @@ describe("directives", function(){        var innerDiv = jqLite(element.children()[0]); -      innerDiv.trigger('click'); +      browserTrigger(innerDiv, 'click');        expect(scope.$get('outer')).not.toBeDefined();        expect(scope.$get('inner')).toEqual(true);      }); diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js index cc254eff..c0cdd565 100644 --- a/test/widgetsSpec.js +++ b/test/widgetsSpec.js @@ -32,12 +32,12 @@ describe("widget", function(){          expect(element.val()).toEqual("Adam");          element.val('Shyam'); -        element.trigger('keyup'); +        browserTrigger(element, 'keyup');          expect(scope.$get('name')).toEqual('Shyam');          expect(scope.$get('count')).toEqual(1);          element.val('Kai'); -        element.trigger('change'); +        browserTrigger(element, 'change');          expect(scope.$get('name')).toEqual('Kai');          expect(scope.$get('count')).toEqual(2);        }); @@ -53,7 +53,7 @@ describe("widget", function(){            expect(element.val()).toEqual("x, y, z");            element.val('1, 2, 3'); -          element.trigger('keyup'); +          browserTrigger(element, 'keyup');            expect(scope.$get('list')).toEqual(['1', '2', '3']);          }); @@ -70,7 +70,7 @@ describe("widget", function(){            scope.age = 123;            scope.$eval();            scope.$element.val('123X'); -          scope.$element.trigger('change'); +          browserTrigger(scope.$element, 'change');            expect(scope.$element.val()).toEqual('123X');            expect(scope.age).toEqual(123);            expect(scope.$element).toBeInvalid(); @@ -87,22 +87,22 @@ describe("widget", function(){            compile('<input type="text" name="list" ng:format="list" value="a"/>');            scope.$element.val('a '); -          scope.$element.trigger('change'); +          browserTrigger(scope.$element, 'change');            expect(scope.$element.val()).toEqual('a ');            expect(scope.list).toEqual(['a']);            scope.$element.val('a ,'); -          scope.$element.trigger('change'); +          browserTrigger(scope.$element, 'change');            expect(scope.$element.val()).toEqual('a ,');            expect(scope.list).toEqual(['a']);            scope.$element.val('a , '); -          scope.$element.trigger('change'); +          browserTrigger(scope.$element, 'change');            expect(scope.$element.val()).toEqual('a , ');            expect(scope.list).toEqual(['a']);            scope.$element.val('a , b'); -          scope.$element.trigger('change'); +          browserTrigger(scope.$element, 'change');            expect(scope.$element.val()).toEqual('a , b');            expect(scope.list).toEqual(['a', 'b']);          }); @@ -175,7 +175,7 @@ describe("widget", function(){            expect(element.attr('ng-validation-error')).toBeFalsy();            element.val('x'); -          element.trigger('keyup'); +          browserTrigger(element, 'keyup');            expect(element.hasClass('ng-validation-error')).toBeTruthy();            expect(element.attr('ng-validation-error')).toEqual('Not a number');          }); @@ -229,7 +229,7 @@ describe("widget", function(){        expect(element.attr('ng-validation-error')).toBeFalsy();        element.val(''); -      element.trigger('keyup'); +      browserTrigger(element, 'keyup');        expect(element.hasClass('ng-validation-error')).toBeTruthy();        expect(element.attr('ng-validation-error')).toEqual('Required');      }); @@ -254,7 +254,7 @@ describe("widget", function(){        expect(element.attr('ng-validation-error')).toEqual('Required');        element.val('abc'); -      element.trigger('keyup'); +      browserTrigger(element, 'keyup');        expect(element.hasClass('ng-validation-error')).toBeFalsy();        expect(element.attr('ng-validation-error')).toBeFalsy();      }); @@ -268,11 +268,11 @@ describe("widget", function(){        expect(element.val()).toEqual("Adam");        element.val('Shyam'); -      element.trigger('keyup'); +      browserTrigger(element, 'keyup');        expect(scope.$get('name')).toEqual('Shyam');        element.val('Kai'); -      element.trigger('change'); +      browserTrigger(element, 'change');        expect(scope.$get('name')).toEqual('Kai');      }); | 
