summaryrefslogtreecommitdiffstats
path: root/testing/mozbase/mozdevice/tests/sut_pull.py
blob: c9fcae42a627c665c307246b230c06f3c04c97cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
from sut import MockAgent
import mozdevice
import logging
import unittest


class PullTest(unittest.TestCase):

    def test_pull_success(self):
        for count in [1, 4, 1024, 2048]:
            cheeseburgers = ""
            for i in range(count):
                cheeseburgers += "cheeseburgers"

            # pull file is kind of gross, make sure we can still execute commands after it's done
            remoteName = "/mnt/sdcard/cheeseburgers"
            a = MockAgent(self, commands=[("pull %s" % remoteName,
                                           "%s,%s\n%s" % (remoteName,
                                                          len(cheeseburgers),
                                                          cheeseburgers)),
                                          ("isdir /mnt/sdcard", "TRUE")])

            d = mozdevice.DroidSUT("127.0.0.1", port=a.port,
                                   logLevel=logging.DEBUG)
            pulledData = d.pullFile("/mnt/sdcard/cheeseburgers")
            self.assertEqual(pulledData, cheeseburgers)
            d.dirExists('/mnt/sdcard')

    def test_pull_failure(self):

        # this test simulates only receiving a few bytes of what we expect
        # to be larger file
        remoteName = "/mnt/sdcard/cheeseburgers"
        a = MockAgent(self, commands=[("pull %s" % remoteName,
                                       "%s,15\n%s" % (remoteName,
                                                      "cheeseburgh"))])
        d = mozdevice.DroidSUT("127.0.0.1", port=a.port,
                               logLevel=logging.DEBUG)
        exceptionThrown = False
        try:
            d.pullFile("/mnt/sdcard/cheeseburgers")
        except mozdevice.DMError:
            exceptionThrown = True
        self.assertTrue(exceptionThrown)

if __name__ == '__main__':
    unittest.main()