diff options
Diffstat (limited to 'test/ngScenario/e2e')
| -rw-r--r-- | test/ngScenario/e2e/Runner-compiled.html | 9 | ||||
| -rw-r--r-- | test/ngScenario/e2e/Runner.html | 9 | ||||
| -rw-r--r-- | test/ngScenario/e2e/style.css | 11 | ||||
| -rw-r--r-- | test/ngScenario/e2e/widgets-scenario.js | 67 | ||||
| -rw-r--r-- | test/ngScenario/e2e/widgets.html | 99 | 
5 files changed, 195 insertions, 0 deletions
diff --git a/test/ngScenario/e2e/Runner-compiled.html b/test/ngScenario/e2e/Runner-compiled.html new file mode 100644 index 00000000..530fef96 --- /dev/null +++ b/test/ngScenario/e2e/Runner-compiled.html @@ -0,0 +1,9 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +  <head> +    <script type="text/javascript" src="../../../build/angular-scenario.js" ng-autotest></script> +    <script type="text/javascript" src="widgets-scenario.js"></script> +  </head> +  <body> +  </body> +</html> diff --git a/test/ngScenario/e2e/Runner.html b/test/ngScenario/e2e/Runner.html new file mode 100644 index 00000000..1191dc86 --- /dev/null +++ b/test/ngScenario/e2e/Runner.html @@ -0,0 +1,9 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +  <head> +    <script type="text/javascript" src="../../../src/scenario/angular-bootstrap.js" ng-autotest></script> +    <script type="text/javascript" src="widgets-scenario.js"></script> +  </head> +  <body> +  </body> +</html> diff --git a/test/ngScenario/e2e/style.css b/test/ngScenario/e2e/style.css new file mode 100644 index 00000000..26540bec --- /dev/null +++ b/test/ngScenario/e2e/style.css @@ -0,0 +1,11 @@ +th { +  text-align: left; +} + +tr { +  border: 1px solid black; +} + +.redbox { +  background-color: red; +} diff --git a/test/ngScenario/e2e/widgets-scenario.js b/test/ngScenario/e2e/widgets-scenario.js new file mode 100644 index 00000000..fda9b3c6 --- /dev/null +++ b/test/ngScenario/e2e/widgets-scenario.js @@ -0,0 +1,67 @@ +'use strict'; + +describe('widgets', function() { +  it('should verify that basic widgets work', function() { +    browser().navigateTo('widgets.html'); + +    using('#text-basic-box').input('text.basic').enter('Carlos'); +    expect(binding('text.basic')).toEqual('Carlos'); +    input('text.basic').enter('Carlos Santana'); +    expect(binding('text.basic')).not().toEqual('Carlos Boozer'); + +    input('text.password').enter('secret'); +    expect(binding('text.password')).toEqual('secret'); + +    expect(binding('text.hidden')).toEqual('hiddenValue'); + +    expect(binding('gender')).toEqual('male'); +    input('gender').select('female'); +    expect(using('#gender-box').binding('gender')).toEqual('female'); + +    expect(repeater('#repeater-row ul li').count()).toEqual(2); +    expect(repeater('#repeater-row ul li').row(1)).toEqual(['adam']); +    expect(repeater('#repeater-row ul li').column('name')).toEqual(['misko', 'adam']); + +    select('select').option('B'); +    expect(binding('select')).toEqual('B'); + +    select('multiselect').options('A', 'C'); +    expect(binding('multiselect').fromJson()).toEqual(['A', 'C']); + +    expect(binding('button').fromJson()).toEqual({'count': 0}); +    expect(binding('form').fromJson()).toEqual({'count': 0}); + +    element('form a', "'action' link").click(); +    expect(binding('button').fromJson()).toEqual({'count': 1}); + +    element('input[value="submit input"]', "'submit input' button").click(); +    expect(binding('button').fromJson()).toEqual({'count': 2}); +    expect(binding('form').fromJson()).toEqual({'count': 1}); + +    element('button:contains("submit button")', "'submit button' button").click(); +    expect(binding('button').fromJson()).toEqual({'count': 2}); +    expect(binding('form').fromJson()).toEqual({'count': 2}); + +    element('input[value="button"]', "'button' button").click(); +    expect(binding('button').fromJson()).toEqual({'count': 3}); + +    element('input[type="image"]', 'form image').click(); +    expect(binding('button').fromJson()).toEqual({'count': 4}); + +    /** +     * Custom value parser for futures. +     */ +    function checkboxParser(value) { +      return angular.fromJson(value.substring(value.indexOf('=')+1)); +    } + +    input('checkbox.tea').check(); +    expect(binding('checkbox').parsedWith(checkboxParser)).toEqual({coffee: false, tea: false}); +    input('checkbox.coffee').check(); +    expect(binding('checkbox').parsedWith(checkboxParser)).toEqual({coffee: true, tea: false}); +    input('checkbox.tea').check(); +    input('checkbox.tea').check(); +    input('checkbox.tea').check(); +    expect(binding('checkbox').parsedWith(checkboxParser)).toEqual({coffee: true, tea: true}); +  }); +}); diff --git a/test/ngScenario/e2e/widgets.html b/test/ngScenario/e2e/widgets.html new file mode 100644 index 00000000..f986144e --- /dev/null +++ b/test/ngScenario/e2e/widgets.html @@ -0,0 +1,99 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns:ng="http://angularjs.org"> +  <head ng-app> +    <link rel="stylesheet" type="text/css" href="style.css"/> +    <script type="text/javascript" src="../../../src/angular-bootstrap.js"></script> +  </head> +  <body ng-init="$window.$scope = this"> +    <table> +      <tr> +        <th width="330">Description</th> +        <th>Test</th> +        <th>Result</th> +      </tr> +      <tr><th colspan="3">Input text field</th></tr> +      <tr> +        <td>basic</td> +        <td id="text-basic-box"> +          <input type="text" ng-model="text.basic"/> +        </td> +        <td>text.basic={{text.basic}}</td> +      </tr> +      <tr> +        <td>password</td> +        <td><input type="password" ng-model="text.password" /></td> +        <td>text.password={{text.password}}</td> +      </tr> +      <tr> +        <td>hidden</td> +        <td><input type="hidden" ng-model="text.hidden" value="hiddenValue" /></td> +        <td>text.hidden={{text.hidden}}</td> +      </tr> +      <tr><th colspan="3">Input selection field</th></tr> +      <tr id="gender-box"> +        <td>radio</td> +        <td> +         <input type="radio" ng-model="gender" value="female"/> Female <br/> +         <input type="radio" ng-model="gender" value="male" checked="checked"/> Male +        </td> +        <td>gender={{gender}}</td> +      </tr> +      <tr> +        <td>checkbox</td> +        <td> +         <input type="checkbox" ng-model="checkbox.tea" checked value="on"/> Tea<br/> +         <input type="checkbox" ng-model="checkbox.coffee" value="on"/> Coffe +        </td> +        <td> +          <pre>checkbox={{checkbox}}</pre> +        </td> +      </tr> +      <tr> +        <td>select</td> +        <td> +          <select ng-model="select"> +            <option>A</option> +            <option>B</option> +            <option>C</option> +          </select> +        </td> +        <td>select={{select}}</td> +      </tr> +      <tr> +        <td>multiselect</td> +        <td> +          <select ng-model="multiselect" multiple> +            <option>A</option> +            <option>B</option> +            <option>C</option> +          </select> +        </td> +        <td>multiselect={{multiselect}}</td> +      </tr> +      <tr><th colspan="3">Buttons</th></tr> +      <tr> +        <td>ng-change<br/>ng-click</td> +        <td ng-init="button.count = 0; form.count = 0;"> +          <form ng-submit="form.count = form.count + 1"> +           <input type="button" value="button" ng-change="button.count = button.count + 1"/> <br/> +           <input type="submit" value="submit input" ng-change="button.count = button.count + 1"/><br/> +           <button type="submit">submit button</button> +           <input type="image" src="" ng-change="button.count = button.count + 1"/><br/> +           <a href="" ng-click="button.count = button.count + 1">action</a> +          </form> +        </td> +        <td>button={{button}} form={{form}}</td> +      </tr> +      <tr><th colspan="3">Repeaters</th></tr> +      <tr id="repeater-row"> +        <td>ng-repeat</td> +        <td> +          <ul> +            <li ng-repeat="name in ['misko', 'adam']">{{name}}</li> +          </ul> +        </td> +        <td></td> +      </tr> +    </table> +  </body> + </html>  | 
