diff --git a/lib/cros_test_unittest.py b/lib/cros_test_unittest.py
index 2c7faf8..18445ef 100644
--- a/lib/cros_test_unittest.py
+++ b/lib/cros_test_unittest.py
@@ -53,6 +53,26 @@
         '/usr/local/autotest/bin/vm_sanity.py'
     ])
 
+  def testDeployChrome(self):
+    """Tests basic deploy chrome command."""
+    self._tester.deploy = True
+    self._tester.build_dir = self.TempFilePath('out_amd64-generic/Release')
+    self._tester.Run()
+    self.assertCommandContains(['deploy_chrome', '--force', '--build-dir',
+                                self._tester.build_dir, '--process-timeout',
+                                '180', '--to', self._tester._device.device,
+                                '--port', '9222', '--board', 'amd64-generic',
+                                '--cache-dir', self._tester.cache_dir])
+
+  def testDeployChromeWithArgs(self):
+    """Tests deploy chrome command with additional arguments."""
+    self._tester.deploy = True
+    self._tester.build_dir = self.TempFilePath('out_amd64-generic/Release')
+    self._tester.nostrip = True
+    self._tester.mount = True
+    self._tester.Run()
+    self.assertCommandContains(['--nostrip', '--mount'])
+
   def testCatapult(self):
     """Verify catapult test command."""
     self._tester.catapult_tests = ['testAddResults']
@@ -86,6 +106,64 @@
         '-F /dev/null -i /dev/null',
         'localhost:9222', 'accessiblity_Sanity'])
 
+  def testAutotestWithArgs(self):
+    """Tests an autotest call with attributes."""
+    self._tester.autotest = ['accessibility_Sanity']
+    self._tester.results_dir = 'test_results'
+    self._tester._device.private_key = '.ssh/testing_rsa'
+    self._tester._device.log_level = 'debug'
+    self._tester._device.ssh_port = None
+    self._tester._device.device = '100.90.29.199'
+    self._tester.test_that_args = ['--test_that-args',
+                                   '--whitelist-chrome-crashes']
+
+    cwd = os.path.join('/mnt/host/source',
+                       os.path.relpath(os.getcwd(), constants.SOURCE_ROOT))
+    test_results_dir = os.path.join(cwd, 'test_results')
+    testing_rsa_dir = os.path.join(cwd, '.ssh/testing_rsa')
+
+    self._tester._RunAutotest()
+
+    self.assertCommandCalled(
+        ['test_that', '--board', 'amd64-generic', '--results_dir',
+         test_results_dir, '--ssh_private_key', testing_rsa_dir, '--debug',
+         '--whitelist-chrome-crashes', '--no-quickmerge', '--ssh_options',
+         '-F /dev/null -i /dev/null', '100.90.29.199', 'accessibility_Sanity'],
+        enter_chroot=not cros_build_lib.IsInsideChroot())
+
+  @mock.patch('chromite.lib.cros_build_lib.IsInsideChroot', return_value=True)
+  def testInsideChrootAutotest(self, check_inside_chroot_mock):
+    """Tests running an autotest from within the chroot."""
+    # Checks that mock version has been called.
+    check_inside_chroot_mock.assert_called()
+
+    self._tester.autotest = ['accessiblity_Sanity']
+    self._tester.results_dir = '/mnt/host/source/test_results'
+    self._tester._device.private_key = '/mnt/host/source/.ssh/testing_rsa'
+
+    self._tester._RunAutotest()
+
+    self.assertCommandContains([
+        '--results_dir', '/mnt/host/source/test_results',
+        '--ssh_private_key', '/mnt/host/source/.ssh/testing_rsa'])
+
+  @mock.patch('chromite.lib.cros_build_lib.IsInsideChroot', return_value=False)
+  def testOutsideChrootAutotest(self, check_inside_chroot_mock):
+    """Tests running an autotest from outside the chroot."""
+    # Checks that mock version has been called.
+    check_inside_chroot_mock.assert_called()
+
+    self._tester.autotest = ['accessibility_Sanity']
+    # Capture the run command. This is necessary beacuse the mock doesn't
+    # capture the cros_sdk wrapper.
+    with cros_build_lib.OutputCapturer() as output:
+      self._tester._RunAutotest()
+    # Check that we enter the chroot before running test_that.
+    self.assertIn(
+        'cros_sdk -- test_that --board amd64-generic --no-quickmerge'
+        ' --ssh_options \'-F /dev/null -i /dev/null\' localhost:9222'
+        ' accessibility_Sanity', output.GetStderr())
+
   def testSingleBaseTastTest(self):
     """Verify running a single tast test."""
     self._tester.tast = ['ui.ChromeLogin']
@@ -145,61 +223,3 @@
         '-ephemeraldevserver=false', '-keyfile', '/tmp/.ssh/testing_rsa',
         '-extrauseflags=tast_vm', 'localhost:9222', 'ui.ChromeLogin'
     ])
-
-  def testAutotestWithArgs(self):
-    """Tests an autotest call with attributes."""
-    self._tester.autotest = ['accessibility_Sanity']
-    self._tester.results_dir = 'test_results'
-    self._tester._device.private_key = '.ssh/testing_rsa'
-    self._tester._device.log_level = 'debug'
-    self._tester._device.ssh_port = None
-    self._tester._device.device = '100.90.29.199'
-    self._tester.test_that_args = ['--test_that-args',
-                                   '--whitelist-chrome-crashes']
-
-    cwd = os.path.join('/mnt/host/source',
-                       os.path.relpath(os.getcwd(), constants.SOURCE_ROOT))
-    test_results_dir = os.path.join(cwd, 'test_results')
-    testing_rsa_dir = os.path.join(cwd, '.ssh/testing_rsa')
-
-    self._tester._RunAutotest()
-
-    self.assertCommandCalled(
-        ['test_that', '--board', 'amd64-generic', '--results_dir',
-         test_results_dir, '--ssh_private_key', testing_rsa_dir, '--debug',
-         '--whitelist-chrome-crashes', '--no-quickmerge', '--ssh_options',
-         '-F /dev/null -i /dev/null', '100.90.29.199', 'accessibility_Sanity'],
-        enter_chroot=not cros_build_lib.IsInsideChroot())
-
-  @mock.patch('chromite.lib.cros_build_lib.IsInsideChroot', return_value=True)
-  def testInsideChrootAutotest(self, check_inside_chroot_mock):
-    """Tests running an autotest from within the chroot."""
-    # Checks that mock version has been called.
-    check_inside_chroot_mock.assert_called()
-
-    self._tester.autotest = ['accessiblity_Sanity']
-    self._tester.results_dir = '/mnt/host/source/test_results'
-    self._tester._device.private_key = '/mnt/host/source/.ssh/testing_rsa'
-
-    self._tester._RunAutotest()
-
-    self.assertCommandContains([
-        '--results_dir', '/mnt/host/source/test_results',
-        '--ssh_private_key', '/mnt/host/source/.ssh/testing_rsa'])
-
-  @mock.patch('chromite.lib.cros_build_lib.IsInsideChroot', return_value=False)
-  def testOutsideChrootAutotest(self, check_inside_chroot_mock):
-    """Tests running an autotest from outside the chroot."""
-    # Checks that mock version has been called.
-    check_inside_chroot_mock.assert_called()
-
-    self._tester.autotest = ['accessibility_Sanity']
-    # Capture the run command. This is necessary beacuse the mock doesn't
-    # capture the cros_sdk wrapper.
-    with cros_build_lib.OutputCapturer() as output:
-      self._tester._RunAutotest()
-    # Check that we enter the chroot before running test_that.
-    self.assertIn(
-        'cros_sdk -- test_that --board amd64-generic --no-quickmerge'
-        ' --ssh_options \'-F /dev/null -i /dev/null\' localhost:9222'
-        ' accessibility_Sanity', output.GetStderr())
