浏览代码

XzDownloader test

Pierre Rudloff 9 年之前
父节点
当前提交
879d34589b
共有 1 个文件被更改,包括 57 次插入0 次删除
  1. 57 0
      tests/Composer/Test/Downloader/XzDownloaderTest.php

+ 57 - 0
tests/Composer/Test/Downloader/XzDownloaderTest.php

@@ -0,0 +1,57 @@
+<?php
+
+/*
+ * This file is part of Composer.
+ *
+ * (c) Nils Adermann <naderman@naderman.de>
+ *     Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer\Test\Downloader;
+
+use Composer\Downloader\XzDownloader;
+
+class XzDownloaderTest extends \PHPUnit_Framework_TestCase
+{
+    public function setUp()
+    {
+        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+            $this->markTestSkipped('Skip test on Windows');
+        }
+    }
+
+    public function testErrorMessages()
+    {
+        $packageMock = $this->getMock('Composer\Package\PackageInterface');
+        $packageMock->expects($this->any())
+            ->method('getDistUrl')
+            ->will($this->returnValue($distUrl = 'file://'.__FILE__))
+        ;
+        $packageMock->expects($this->any())
+            ->method('getDistUrls')
+            ->will($this->returnValue(array($distUrl)))
+        ;
+        $packageMock->expects($this->atLeastOnce())
+            ->method('getTransportOptions')
+            ->will($this->returnValue(array()))
+        ;
+
+        $io = $this->getMock('Composer\IO\IOInterface');
+        $config = $this->getMock('Composer\Config');
+        $config->expects($this->any())
+            ->method('get')
+            ->with('vendor-dir')
+            ->will($this->returnValue(sys_get_temp_dir().'/composer-xz-test-vendor'));
+        $downloader = new XzDownloader($io, $config);
+
+        try {
+            $downloader->download($packageMock, sys_get_temp_dir().'/composer-xz-test');
+            $this->fail('Download of invalid tarball should throw an exception');
+        } catch (\RuntimeException $e) {
+            $this->assertContains('File format not recognized', $e->getMessage());
+        }
+    }
+}