# Copyright 2015 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

AUTHOR = "Mussa Kiroga"
NAME = "video_GlitchDetection.vimeo"
PURPOSE = "Verify that Vimeo Video Playback is glitch and corruption free"
CRITERIA = """

"""
TIME = "LONG"
TEST_CATEGORY = "General"
TEST_CLASS = "video"
TEST_TYPE = "client"
DEPENDENCIES = "video_glitch_detection, chameleon"
BUG_TEMPLATE = {
    'owner': 'avkodipelli@chromium.org',
    'cc': ['mussa@chromium.org', 'rohitbm@chromium.org'],
    'labels': ['VideoTestFailure', 'OS-Chrome']
}

DOC = """
This test uses cloud based image comparison to determine test PASS or FAIL.
The service sends an email to a preconfigured address in case of test FAIL only.
If this tests reports FAIL it means something went wrong during the run of the
test itself.
All test results regardless of result are stored and viewable.
"""

host = next(iter(job.hosts))

job.run_test('video_GlitchDetection',
              channel='dev',
              video_name='vimeo',
              use_chameleon=True,
              host=host,
              args=args)
