summaryrefslogtreecommitdiff
path: root/chromium/content/browser/resources/media/new/integration_test.html
blob: 3a5225cb64794dc6a3a101c4db0de4a5639ff600 (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
<!--
Copyright 2013 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<!DOCTYPE html>
<html>
  <head>
    <script src="webui_resource_test.js"></script>
    <script src="util.js"></script>
    <script src="player_manager.js"></script>
    <script src="player_info.js"></script>
    <script src="main.js"></script>
  </head>
  <body>
    <script>
      window.setUp = function() {
        var doNothing = function() {};
        var mockRenderer = {
          redrawList: doNothing,
          update: doNothing,
          select: doNothing
        };

        var manager = new PlayerManager(mockRenderer);
        media.initialize(manager);

        window.playerManager = manager;
      };

      // The renderer and player ids are completely arbitrarily.
      var TEST_RENDERER = 12;
      var TEST_PLAYER = 4;
      var TEST_NAME = TEST_RENDERER + ':' + TEST_PLAYER;

      // Correctly use the information from a media event.
      window.testOnMediaEvent = function() {
        var event = {
          ticksMillis: 132,
          renderer: TEST_RENDERER,
          player: TEST_PLAYER,
          params: {
            fps: 60,
            other: 'hi'
          }
        };

        window.media.onMediaEvent(event);
        var info = window.playerManager.players_[TEST_NAME];

        assertEquals(event.ticksMillis, info.firstTimestamp_);
        assertEquals(TEST_NAME, info.id);
        assertEquals(event.params.fps, info.properties.fps);
      };

      // Remove a player.
      window.testOnRenderTerminated = function() {
        window.testOnMediaEvent();

        window.playerManager.shouldRemovePlayer_ = function() {
          return true;
        };

        window.media.onRendererTerminated(TEST_RENDERER);
        assertEquals(undefined, window.playerManager.players_[TEST_NAME]);
      };

      // Audio Streams are weird, they are handled separately
      window.testAddAudioStream = function() {
        var event = {
          id: 'ID',
          status: 'created',
          playing: true
        };

        window.media.addAudioStream(event);

        var player = window.playerManager.players_[event.id];
        assertTrue(undefined !== player);
        assertEquals(event.playing, player.properties['playing']);
      };

      runTests();
    </script>
  </body>
</html>