Implement downloading artifacts from Android builds.

BUG=chromium:512668
TEST=local run
download credential file from Cloud console
start devserver:
./devserver.py --static_dir=/usr/local/google/home/dshi/images \
  --log=/tmp/devserver.log --port 8082
  -a "/usr/local/google2/chromiumos/src/platform/dev/android_build_cred.json"
test download:
success:
curl http://127.0.0.1:8082/stage?target=shamu-userdebug\&build_id=2040953\&artifacts=test_zip\&branch=git_mnc-release
fail:
curl http://127.0.0.1:8082/stage?target=shamu-userdebug\&build_id=2040953\&artifacts=test_zip\&branch=none

cros flash a test device

Change-Id: I967d80ed3013f6085ae6d7e56e34b0f9dd9af10e
Reviewed-on: https://chromium-review.googlesource.com/304664
Commit-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
diff --git a/downloader_unittest.py b/downloader_unittest.py
index 16909da..61bc880 100755
--- a/downloader_unittest.py
+++ b/downloader_unittest.py
@@ -112,16 +112,17 @@
   def setUp(self):
     mox.MoxTestBase.setUp(self)
     self._work_dir = tempfile.mkdtemp('downloader-test')
+    self.branch = 'release'
     self.target = 'shamu-userdebug'
     self.build_id = '123456'
 
   def tearDown(self):
     shutil.rmtree(self._work_dir, ignore_errors=True)
 
-  def testDownloadFromLaunchControl(self):
-    """Basic test to check download from LaunchControl works."""
-    downloader_instance = downloader.LaunchControlDownloader(
-        self._work_dir, self.build_id, self.target)
+  def testDownloadFromAndroidBuildServer(self):
+    """Basic test to check download from Android's build server works."""
+    downloader_instance = downloader.AndroidBuildDownloader(
+        self._work_dir, self.branch, self.build_id, self.target)
     factory = build_artifact.AndroidArtifactFactory(
         downloader_instance.GetBuildDir(), ['fastboot'],
         None, downloader_instance.GetBuild())
@@ -130,17 +131,13 @@
     self.mox.StubOutWithMock(downloader.Downloader,
                              '_DownloadArtifactsInBackground')
 
-    # TODO(dshi): Uncomment following line after Fetch method is implemented in
-    # LaunchControlDownloader.
-    # downloader.Downloader._DownloadArtifactsInBackground(mox.In(mox.IsA(
-    #     build_artifact.ANDROID_FASTBOOT)))
     downloader.Downloader._DownloadArtifactsSerially(
         [mox.IsA(build_artifact.Artifact)], no_wait=True)
     self.mox.ReplayAll()
     downloader_instance.Download(factory)
     # Sanity check the timestamp file exists.
     self.assertTrue(os.path.exists(
-        os.path.join(self._work_dir, self.target, self.build_id,
+        os.path.join(self._work_dir, self.branch, self.target, self.build_id,
                      downloader.Downloader._TIMESTAMP_FILENAME)))
     self.mox.VerifyAll()