| from sut import MockAgent |
| import mozdevice |
| import logging |
| import unittest |
| |
| class BasicTest(unittest.TestCase): |
| |
| def test_init(self): |
| """Tests DeviceManager initialization.""" |
| a = MockAgent(self) |
| |
| mozdevice.DroidSUT("127.0.0.1", port=a.port, logLevel=logging.DEBUG) |
| # all testing done in device's constructor |
| a.wait() |
| |
| def test_init_err(self): |
| """Tests error handling during initialization.""" |
| a = MockAgent(self, start_commands=[("ver", "##AGENT-WARNING## No version")]) |
| self.assertRaises(mozdevice.DMError, |
| lambda: mozdevice.DroidSUT("127.0.0.1", |
| port=a.port, |
| logLevel=logging.DEBUG)) |
| a.wait() |
| |
| def test_timeout_normal(self): |
| """Tests DeviceManager timeout, normal case.""" |
| a = MockAgent(self, commands = [("isdir /mnt/sdcard/tests", "TRUE"), |
| ("cd /mnt/sdcard/tests", ""), |
| ("ls", "test.txt"), |
| ("rm /mnt/sdcard/tests/test.txt", |
| "Removed the file")]) |
| d = mozdevice.DroidSUT("127.0.0.1", port=a.port, logLevel=logging.DEBUG) |
| ret = d.removeFile('/mnt/sdcard/tests/test.txt') |
| self.assertEqual(ret, None) # if we didn't throw an exception, we're ok |
| a.wait() |
| |
| def test_timeout_timeout(self): |
| """Tests DeviceManager timeout, timeout case.""" |
| a = MockAgent(self, commands = [("isdir /mnt/sdcard/tests", "TRUE"), |
| ("cd /mnt/sdcard/tests", ""), |
| ("ls", "test.txt"), |
| ("rm /mnt/sdcard/tests/test.txt", 0)]) |
| d = mozdevice.DroidSUT("127.0.0.1", port=a.port, logLevel=logging.DEBUG) |
| d.default_timeout = 1 |
| exceptionThrown = False |
| try: |
| d.removeFile('/mnt/sdcard/tests/test.txt') |
| except mozdevice.DMError: |
| exceptionThrown = True |
| self.assertEqual(exceptionThrown, True) |
| a.should_stop = True |
| a.wait() |
| |
| def test_shell(self): |
| """Tests shell command""" |
| for cmd in [ ("exec foobar", False), ("execsu foobar", True) ]: |
| for retcode in [ 1, 2 ]: |
| a = MockAgent(self, commands=[(cmd[0], |
| "\nreturn code [%s]" % retcode)]) |
| d = mozdevice.DroidSUT("127.0.0.1", port=a.port) |
| exceptionThrown = False |
| try: |
| d.shellCheckOutput(["foobar"], root=cmd[1]) |
| except mozdevice.DMError: |
| exceptionThrown = True |
| expectedException = (retcode != 0) |
| self.assertEqual(exceptionThrown, expectedException) |
| |
| a.wait() |
| |
| if __name__ == '__main__': |
| unittest.main() |