class TestSoftwareUpdate(PuppeteerMixin, MarionetteTestCase): def setUp(self): super(TestSoftwareUpdate, self).setUp() self.software_update = SoftwareUpdate(self.marionette) self.saved_mar_channels = self.software_update.mar_channels.channels self.software_update.mar_channels.channels = set(['expected', 'channels']) def tearDown(self): try: self.software_update.mar_channels.channels = self.saved_mar_channels finally: super(TestSoftwareUpdate, self).tearDown() def test_abi(self): self.assertTrue(self.software_update.ABI) def test_allowed(self): self.assertTrue(self.software_update.allowed) def test_build_info(self): build_info = self.software_update.build_info self.assertEqual(build_info['disabled_addons'], None) self.assertIn('Mozilla/', build_info['user_agent']) self.assertEqual(build_info['mar_channels'], set(['expected', 'channels'])) self.assertTrue(build_info['version']) self.assertTrue(build_info['buildid'].isdigit()) self.assertTrue(build_info['locale']) self.assertIn('force=1', build_info['update_url']) self.assertIn('xml', build_info['update_snippet']) self.assertEqual(build_info['channel'], self.software_update.update_channel) def test_force_fallback(self): status_file = os.path.join(self.software_update.staging_directory, 'update.status') try: self.software_update.force_fallback() with open(status_file, 'r') as f: content = f.read() self.assertEqual(content, 'failed: 6\n') finally: os.remove(status_file) def test_get_update_url(self): update_url = self.software_update.get_formatted_update_url() self.assertIn('Firefox', update_url) self.assertNotIn('force=1', update_url) update_url = self.software_update.get_formatted_update_url(True) self.assertIn('Firefox', update_url) self.assertIn('force=1', update_url) def test_os_version(self): self.assertTrue(self.software_update.os_version) def test_staging_directory(self): self.assertTrue(self.software_update.staging_directory)
class TestSoftwareUpdate(PuppeteerMixin, MarionetteTestCase): def setUp(self): super(TestSoftwareUpdate, self).setUp() self.software_update = SoftwareUpdate(self.marionette) self.saved_mar_channels = self.software_update.mar_channels.channels self.software_update.mar_channels.channels = set(['expected', 'channels']) def tearDown(self): try: self.software_update.mar_channels.channels = self.saved_mar_channels finally: super(TestSoftwareUpdate, self).tearDown() def test_abi(self): self.assertTrue(self.software_update.ABI) def test_allowed(self): # Updates are only allowed when run via the UpdateTestCase class self.assertFalse(self.software_update.allowed) def test_build_info(self): self.software_update.update_url = self.marionette.absolute_url( 'update/snippet_empty.xml?product=%PRODUCT%&version=%VERSION%&' 'buildid=%BUILD_ID%&locale=%LOCALE%&channel=%CHANNEL%') try: build_info = self.software_update.build_info self.assertEqual(build_info['disabled_addons'], None) self.assertIn('Mozilla/', build_info['user_agent']) self.assertEqual(build_info['mar_channels'], set(['expected', 'channels'])) self.assertTrue(build_info['version']) self.assertTrue(build_info['buildid'].isdigit()) self.assertTrue(build_info['locale']) self.assertIn('force=1', build_info['update_url']) self.assertIn('xml', build_info['update_snippet']) self.assertEqual(build_info['channel'], self.software_update.update_channel) finally: # Restart Firefox to reset the custom update url self.restart(clean=True) def test_force_fallback(self): status_file = os.path.join(self.software_update.staging_directory, 'update.status') try: self.software_update.force_fallback() with open(status_file, 'r') as f: content = f.read() self.assertEqual(content, 'failed: 6\n') finally: os.remove(status_file) def test_get_update_url(self): update_url = self.software_update.get_formatted_update_url() self.assertIn('Firefox', update_url) self.assertNotIn('force=1', update_url) update_url = self.software_update.get_formatted_update_url(True) self.assertIn('Firefox', update_url) self.assertIn('force=1', update_url) def test_os_version(self): self.assertTrue(self.software_update.os_version) def test_staging_directory(self): self.assertTrue(self.software_update.staging_directory)
class TestSoftwareUpdate(PuppeteerMixin, MarionetteTestCase): def setUp(self): super(TestSoftwareUpdate, self).setUp() self.software_update = SoftwareUpdate(self.marionette) self.saved_mar_channels = self.software_update.mar_channels.channels self.saved_update_channel = self.software_update.update_channel self.software_update.mar_channels.channels = set(['expected', 'channels']) def tearDown(self): try: self.software_update.mar_channels.channels = self.saved_mar_channels self.software_update.update_channel = self.saved_update_channel finally: super(TestSoftwareUpdate, self).tearDown() def test_abi(self): self.assertTrue(self.software_update.ABI) def test_allowed(self): self.assertTrue(self.software_update.allowed) def test_build_info(self): build_info = self.software_update.build_info self.assertEqual(build_info['disabled_addons'], None) self.assertIn('Mozilla/', build_info['user_agent']) self.assertEqual(build_info['mar_channels'], set(['expected', 'channels'])) self.assertTrue(build_info['version']) self.assertTrue(build_info['buildid'].isdigit()) self.assertTrue(build_info['locale']) self.assertIn('force=1', build_info['update_url']) self.assertIn('xml', build_info['update_snippet']) self.assertEqual(build_info['channel'], self.software_update.update_channel) def test_force_fallback(self): status_file = os.path.join(self.software_update.staging_directory, 'update.status') try: self.software_update.force_fallback() with open(status_file, 'r') as f: content = f.read() self.assertEqual(content, 'failed: 6\n') finally: os.remove(status_file) def test_get_update_url(self): update_url = self.software_update.get_formatted_update_url() self.assertIn('Firefox', update_url) self.assertNotIn('force=1', update_url) update_url = self.software_update.get_formatted_update_url(True) self.assertIn('Firefox', update_url) self.assertIn('force=1', update_url) def test_os_version(self): self.assertTrue(self.software_update.os_version) def test_staging_directory(self): self.assertTrue(self.software_update.staging_directory) def test_set_update_channel(self): self.software_update.update_channel = 'new_channel' self.assertEqual(self.puppeteer.prefs.get_pref('app.update.channel', default_branch=True), 'new_channel')
class TestSoftwareUpdate(PuppeteerMixin, MarionetteTestCase): def setUp(self): super(TestSoftwareUpdate, self).setUp() self.software_update = SoftwareUpdate(self.marionette) self.saved_mar_channels = self.software_update.mar_channels.channels self.software_update.mar_channels.channels = set(['expected', 'channels']) def tearDown(self): try: self.software_update.mar_channels.channels = self.saved_mar_channels finally: super(TestSoftwareUpdate, self).tearDown() def test_abi(self): self.assertTrue(self.software_update.ABI) def test_allowed(self): self.assertTrue(self.software_update.allowed) def test_build_info(self): self.software_update.update_url = self.marionette.absolute_url( 'update/snippet_empty.xml?product=%PRODUCT%&version=%VERSION%&' 'buildid=%BUILD_ID%&locale=%LOCALE%&channel=%CHANNEL%') try: build_info = self.software_update.build_info self.assertEqual(build_info['disabled_addons'], None) self.assertIn('Mozilla/', build_info['user_agent']) self.assertEqual(build_info['mar_channels'], set(['expected', 'channels'])) self.assertTrue(build_info['version']) self.assertTrue(build_info['buildid'].isdigit()) self.assertTrue(build_info['locale']) self.assertIn('force=1', build_info['update_url']) self.assertIn('xml', build_info['update_snippet']) self.assertEqual(build_info['channel'], self.software_update.update_channel) finally: # Restart Firefox to reset the custom update url self.restart(clean=True) def test_force_fallback(self): status_file = os.path.join(self.software_update.staging_directory, 'update.status') try: self.software_update.force_fallback() with open(status_file, 'r') as f: content = f.read() self.assertEqual(content, 'failed: 6\n') finally: os.remove(status_file) def test_get_update_url(self): update_url = self.software_update.get_formatted_update_url() self.assertIn('Firefox', update_url) self.assertNotIn('force=1', update_url) update_url = self.software_update.get_formatted_update_url(True) self.assertIn('Firefox', update_url) self.assertIn('force=1', update_url) def test_os_version(self): self.assertTrue(self.software_update.os_version) def test_staging_directory(self): self.assertTrue(self.software_update.staging_directory)