/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd and/or its subsidiary(-ies).
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Mobility Components.
**
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

//TESTED_COMPONENT=src/multimedia

testcase = {

/* Notes
Ensure 2 test .mp4 files are available on device
Ensure the device can ping destinations on the network (if applicable)
Have a video stream url available (e.g. http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4)
Ensure access to Internet available to device
Ensure an active SIM card is available on the device. As some video streaming tests are carrier specific, it is recommended in Australia to have access to Testra, Optus and Vodafone SIM's.
*/
    initTestCase: function()
    {
    },

    play_a_video_file_data: {
        mp4:[".mp4", "filename", "mpeg video layer 4"]
    },

    play_a_video_file: function(extension, filename, format)
    {
      // Test meta data
      testApplication = "Multimedia - Play Video File";
      testBinary = "player";
      testGoal = "Verify that local, networked and carrier streamed video files can be played. ";
      testPreconditions = "1. A test "+extension+" file is available on device.<br>2. Internet access is enabled on the device.<br>3. Operator SIM cards are available to the device";
      testGroups = "BAT";

      // Test steps
      prompt(twiki("---+++ " + testApplication + "<br><br>
          *Goal:* " + testGoal + "<br>
          *Pre-Requisites:* " + testPreconditions + "<br>
          *Tested Binary:* " + testBinary + "<br>

         | *Step* | *Verification* |
         | Launch " + testBinary + " | App launches normally |
         | Select [Open] | |
         | In [Open File] select the "+filename+extension+" file to return to player UI | |
         | Select [Play] to play the file | Verify selected file has populated playlist |
         | Highlight file in playlist by clicking on it | |
         | Select [Play] | Verify that .MP4 file is playing on device |
      "));
    },

    basic_controls_for_video_data: {
        mp4:[".mp4", "filename", "mpeg video layer 4"]
    },

    basic_controls_for_video: function(extension, filename, format)
    {
      // Test meta data
      testApplication = "Multimedia - Video Controls";
      testBinary = "player";
      testGoal = "Verify the API for basic video playback functionality";
      testPreconditions = "a test "+extension+" file is available on device.";
      testGroups = "BAT";

      // Test steps
      prompt(twiki("---+++ " + testApplication + "<br><br>
          *Goal:* " + testGoal + "<br>
          *Pre-Requisites:* " + testPreconditions + "<br>
          *Tested Binary:* " + testBinary + "<br>

         | *Step* | *Verification* |
         | Launch " + testBinary + " | App launches normally |
         | Select [Open] | |
         | In [Open File] select the "+filename+extension+" file to return to player UI | |
         | Select [Play] to play the file | |
         | Select [Pause] | Verify that file has paused |
         | | Verify that the [Pause] icon has changed to a [Play] icon |
         | Select [Play] | Verify that the [Play] icon has changed to a [Pause] icon |
         | | Verify that file continues to play from where previously paused. |
         | Select [Next File] | Verify that next file in playlist is playing from start |
         | After some time (10-20 sec) Select [Beginning of File] control | Verify that current file is being played from start |
         | Let arbitrary time pass, then Select [Beginning of File] control twice in quick succession.| Verify that previous file in playlist is playing from start |
         | Select [Stop] | Verify that file has stopped playing |
         | Select [Play] | Verify that file continues to play from start of file. |
         | Let file play till end | Verify player stops at end of file. |
         | Start playing file. | |
         | After arbitrary time, Select [Stop] | |
         | Select [Next File] | Verify that next file in playlist is highlighted |
         | | Verify that file is not automatically playing |
         | Select [Beginning of File] | Verify that previous file in playlist is highlighted |
         | Select file in playlist | Verify that file plays in player. |
         | Select number of files greater than can be displayed without scrolling in to playlist | Verify that list can be scrolled through |
         | With file playing, verify that hardware keys can change volume up and down | |
         | With file playing, verify that UI volume control slider can change volume up and down | |
         | Select volume at 50% (or thereabout) | |
         | Select [Mute] control | Verify that sound is muted while file is playing |
         | | Verify that [Mute] control is displaying the Muted icon |
         | Select [Mute] control again | Verify that sound has reverted back to level selected prior to muting |
         | Drag positional slider to right, then release | Verify that player continues to play file at later part of file |
         | Drag positional slider to left, then release | Verify that player continues to play file at earlier part of file |
         | Start playing file | |
         | Select [FullScreen] control | Verify that video is now playing in Fullscreen mode |
         | When at end of current file | Verify that next file in playlist is being played |
         | When at last file in playlist and at end of file | Verify that fullscreen mode is exited and user returned to player interface and that [FullScreen] is no longer selected. |
       "));
    },

    seek_controls_for_video: function()
    {
       // Test meta data
       testApplication = "Multimedia - Video Seek";
       testBinary = "player";
       testGoal = "Verify the API for Fast Forward/Rewind functionality.";
       testPreconditions = "Video files are available for testing on the device.";
       testGroups = "BAT";

       // Test steps
       prompt(twiki("---+++ " + testApplication + "<br><br>
           *Goal:* " + testGoal + "<br>
           *Pre-Requisites:* " + testPreconditions + "<br>
           *Tested Binary:* " + testBinary + "<br>

          | *Step* | *Verification* |
          | Launch " + testBinary + " | App launches normally |
          | While playing a video file, Select or Tap on Forward control | Verify that playback has moved five seconds forward |
          | Select  or Tap Back control | Verify that playback has moved 5 seconds back |
        "));
    },

    basic_controls_for_streamed_content: function()
    {

//*Note* For this test you need a playlist of streaming media urls. Suggest: http://202.6.74.107:8060/triplej.mp3 ; http://www.abc.net.au/streaming/triplej.asx ; rtsp://media1.abc.net.au/broadcast/triplej.rm ; mms://media3.abc.net.au/triplej ; depending on your platform and backend support. A stream that I have found that works is: http://chaos.troll.no/~tavestbo/webkit/mediaelement/transformers640.ogg

       // Test meta data
       testApplication = "Multimedia - Content Streaming";
       testBinary = "Video player";
       testGoal = "Verify various forms of video streaming.";
       testPreconditions = "For now you need to eddit the .qml file and hardcode the following URI: http://chaos.troll.no/~tavestbo/webkit/mediaelement/transformers640.ogg";
       testGroups = "BAT";

       // Test steps
       prompt(twiki("---+++ " + testApplication + "<br><br>
           *Goal:* " + testGoal + "<br>
           *Pre-Requisites:* " + testPreconditions + "<br>
           *Tested Binary:* " + testBinary + "<br>

          | *Step* | *Verification* |
          | Launch " + testBinary + " | App launches normally |
          | In Video player application, Select or Tap Play | Verify that the video stream plays in the application |
          | Select [Pause] | Verify that stream is paused on device |
          | | Verify that the [Pause] button has changed to a [Play] button |
          | Select [Play] again | Verify that stream is playing on device |
          | Select [Stop] | |
          | During stream playback, have headphones connected to device | Verify that the sound is now playing through the headphones |
          | Invoke a system notification on the device (such as an incoming SMS) | Verify that the device correctly transmits the audible system notification through the devices speakers and then returns to playing the stream through the headphones |
        "));
    },
}
