<!doctype html>
<html>
  <head>
    <meta charset=utf-8>
    <title>Encrypted Media Extensions: Successful Playback, persistent-usage-record session with Clear Key, mp4, event sequence</title>
    <link rel="help" href="https://w3c.github.io/encrypted-media/">

    <!-- Web Platform Test Harness scripts -->
    <script src=/resources/testharness.js></script>
    <script src=/resources/testharnessreport.js></script>

    <!-- Helper scripts for Encrypted Media Extensions tests  -->
    <script src=/encrypted-media/util/utils.js></script>
    <script src=/encrypted-media/util/fetch.js></script>
    <script src=/encrypted-media/util/testmediasource.js></script>
    <script src=/encrypted-media/util/utf8.js></script>

    <!-- Content metadata -->
    <script src=/encrypted-media/content/content-metadata.js></script>

    <!-- Message handler for Clear Key keysystem -->
    <script src=/encrypted-media/util/clearkey-messagehandler.js></script>

    <!-- The script for this specific test -->
    <script src=/encrypted-media/scripts/playback-persistent-usage-record-events.js></script>

  </head>
  <body>
    <div id='log'></div>

    <div id='video'>
      <video id="videoelement" width="200px"></video>
    </div>

    <script>
        var contentitem = content['mp4-basic'],
            handler = new MessageHandler( 'org.w3.clearkey', contentitem ),
            config = {  video:              document.getElementById('videoelement'),
                        keysystem:          'org.w3.clearkey',
                        messagehandler:     handler.messagehandler,
                        audioPath:          contentitem.audio.path,
                        videoPath:          contentitem.video.path,
                        audioType:          contentitem.audio.type,
                        videoType:          contentitem.video.type,
                        initDataType:       'keyids',
                        initData:           getInitData(contentitem,'keyids')
                      };

        runTest(config);
    </script>
  </body>
</html>
