aboutsummaryrefslogtreecommitdiffstats
path: root/test/manual.html
blob: 3b1886f33406c9187138c6a5908eee850757d5b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<!DOCTYPE HTML>
<html>
<head>
  <title>Jasmine Test Runner</title>
  <link rel="stylesheet" type="text/css" href="../lib/jasmine-1.0.1/jasmine.css">
  <script type="text/javascript" src="../lib/jasmine-1.0.1/jasmine.js"></script>
  <script type="text/javascript" src="../lib/jasmine-1.0.1/jasmine-html.js"></script>


  <!-- include source files here... -->
  <script type="text/javascript" src="../lib/jquery/jquery-1.4.2.js"></script>
  <script type="text/javascript"> var _jQuery = $;</script>

  <script type="text/javascript" src="../src/Angular.js"></script>
  <script type="text/javascript" src="../src/JSON.js"></script>
  <script type="text/javascript" src="../src/Compiler.js"></script>
  <script type="text/javascript" src="../src/Scope.js"></script>
  <script type="text/javascript" src="../src/Injector.js"></script>
  <script type="text/javascript" src="../src/jqLite.js"></script>
  <script type="text/javascript" src="../src/parser.js"></script>
  <script type="text/javascript" src="../src/Resource.js"></script>
  <script type="text/javascript" src="../src/Browser.js"></script>
  <script type="text/javascript" src="../src/AngularPublic.js"></script>
  <script type="text/javascript" src="../src/services.js"></script>
  <script type="text/javascript" src="../src/apis.js"></script>
  <script type="text/javascript" src="../src/filters.js"></script>
  <script type="text/javascript" src="../src/formatters.js"></script>
  <script type="text/javascript" src="../src/validators.js"></script>
  <script type="text/javascript" src="../src/directives.js"></script>
  <script type="text/javascript" src="../src/markups.js"></script>
  <script type="text/javascript" src="../src/widgets.js"></script>

  <script type="text/javascript" src="../src/scenario/Scenario.js"></script>
  <script type="text/javascript" src="../src/scenario/Application.js"></script>
  <script type="text/javascript" src="../src/scenario/Describe.js"></script>
  <script type="text/javascript" src="../src/scenario/Future.js"></script>
  <script type="text/javascript" src="../src/scenario/HtmlUI.js"></script>
  <script type="text/javascript" src="../src/scenario/Runner.js"></script>
  <script type="text/javascript" src="../src/scenario/SpecRunner.js"></script>
  <script type="text/javascript" src="../src/scenario/dsl.js"></script>
  <script type="text/javascript" src="../src/scenario/matchers.js"></script>

  <script type="text/javascript" src="angular-mocks.js"></script>
  <script type="text/javascript" src="testabilityPatch.js"></script>

  <!-- include spec files here... -->
<script type="text/javascript">
describe('manual', function(){
  var scope;

  function compile(html, initialScope, parent) {
    var compiler = new Compiler(angularTextMarkup, angularAttrMarkup, angularDirective, angularWidget);
    var element = self.element = jqLite(html);
    scope = compiler.compile(element)(element);

    if (parent) parent.append(element);

    extend(scope, initialScope);
    scope.$init();
    return {node:element, scope:scope};
  };

  it('should debug', function(){
    var x = compile(
        '<select name="selection" ng:format="number">' +
        '<option value="{{$index}}" ng:repeat="name in [\'A\', \'B\', \'C\']">{{name}}</option>' +
      '</select>');
    expect(scope.selection).toEqual(undefined);

    browserTrigger(element[0].childNodes[2], 'change');
    expect(scope.selection).toEqual(1);

    scope.selection = 2;
    scope.$eval();
    expect(element[0].childNodes[3].selected).toEqual(true);
  });

  it('should reproduce', function(){
    var select = $('<select name=""><option>a</option></select>');
    var log = '';
    select.bind('change', function(){ log += 'change;'; });
    select.bind('click', function(){ log += 'click;'; });
    select.bind('keyup', function(){ log += 'keyup;'; });
    select[0].attachEvent('onchange', function(){ log += 'CHANGE;';});
    select[0].fireEvent('onfocusout');
    select[0].fireEvent('onchange');
    select[0].fireEvent('onclick');
    select[0].fireEvent('onkeyup');
    expect(log).toEqual('CHANGE;change;click;keyup;');
  });
});
</script>

</head>
<body>

<script type="text/javascript">
  jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
  jasmine.getEnv().execute();
</script>

</body>
</html>