blob: 96291ace6ef2f0c380d940d05937fac118990943 [file] [log] [blame]
# 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.
"""Tests for the Orchestrator class."""
from unittest import TestCase
from optofidelity.orchestrator.updater import (AndroidUpdater, ChromeUpdater,
FakeUpdater, ManualUpdater)
from optofidelity.util import CreateComponentFromXML
from tests.config import CONFIG
class UpdaterTests(TestCase):
def installLatestVersionTest(self, updater):
latest = updater.available_versions[-1]
updater.Install(latest)
self.assertEqual(updater.installed_version, latest)
def uninstallTest(self, updater):
updater.Uninstall()
self.assertEqual(updater.installed_version, None)
class ChromeUpdaterTests(UpdaterTests):
def testInstallUninstallFlow(self):
for channel in ("stable", "beta", "dev"):
config = "<updater adb='{adb}' channel='{channel}' />"
config = config.format(adb=CONFIG["adb_device_id"], channel=channel)
updater = CreateComponentFromXML(ChromeUpdater, config)
self.installLatestVersionTest(updater)
updater.Verify()
if channel != "stable":
self.uninstallTest(updater)
class AndroidUpdaterTests(UpdaterTests):
def testInstallUninstallFlow(self):
config = "<updater adb='{adb}' />".format(adb=CONFIG["adb_device_id"])
updater = CreateComponentFromXML(AndroidUpdater, config)
version = updater.installed_version
self.assertIsNotNone(version)
CONFIG.AskUserAccept("Android version is: %s" % version)
class ManualUpdaterTests(UpdaterTests):
def testInstalledVersion(self):
config = "<updater version='42' />"
updater = CreateComponentFromXML(ManualUpdater, config)
self.assertEqual(updater.installed_version, "42")
class FakeUpdaterTests(UpdaterTests):
def testInstallUninstallFlow(self):
updater = CreateComponentFromXML(FakeUpdater, "<updater />")
updater._available_versions = ["42"]
self.installLatestVersionTest(updater)
updater.Verify()
self.uninstallTest(updater)