]> source.dussan.org Git - nextcloud-server.git/commitdiff
Test OC\Updater::check
authorVictor Dubiniuk <victor.dubiniuk@gmail.com>
Wed, 26 Nov 2014 16:18:22 +0000 (19:18 +0300)
committerVictor Dubiniuk <victor.dubiniuk@gmail.com>
Sat, 6 Dec 2014 17:17:59 +0000 (20:17 +0300)
tests/lib/updater.php

index 155dccf78a79f2ca4c81d6ce70726b1241ca1449..5a05bc09bb75dee2ba98d942e18f35e793744aff 100644 (file)
@@ -26,9 +26,65 @@ class UpdaterTest extends \Test\TestCase {
        /**
         * @dataProvider versionCompatibilityTestData
         */
-       function testIsUpgradePossible($oldVersion, $newVersion, $result) {
-               $updater = new Updater();
+       public function testIsUpgradePossible($oldVersion, $newVersion, $result) {
+               $updater = new Updater(\OC::$server->getHTTPHelper());
                $this->assertSame($result, $updater->isUpgradePossible($oldVersion, $newVersion));
        }
+       
+       
+       public function testCheck(){
+               $httpHelper = $this->getMockBuilder('\OC\HTTPHelper')
+                               ->getMock();
+               
+               $httpHelper->method('getUrlContent')
+                               ->willReturn(
+                                       '<?xml version="1.0"?><owncloud><version></version><versionstring></versionstring><url></url><web></web></owncloud>'
+                               )
+               ;
+               
+               $updater = new Updater($httpHelper);
+               // Invalidate cache
+               \OC_Appconfig::setValue('core', 'lastupdatedat', 0);
+               $result = $updater->check();
+               $this->assertContains('version', $result);
+               $this->assertContains('versionstring', $result);
+               $this->assertContains('url', $result);
+               $this->assertContains('web', $result);
+               $this->assertEmpty($result['version']);
+               $this->assertEmpty($result['versionstring']);
+               $this->assertEmpty($result['url']);
+               $this->assertEmpty($result['web']);
+               
+               // Invalidate cache
+               \OC_Appconfig::setValue('core', 'lastupdatedat', 0);
+               $httpHelper->method('getUrlContent')
+                               ->willReturn('')
+               ;
+               
+               $emptyResult = $updater->check();
+               $this->assertEmpty($emptyResult);
+
+               // Invalidate cache
+               \OC_Appconfig::setValue('core', 'lastupdatedat', 0);
+               $httpHelper->method('getUrlContent')
+                               ->willReturn('<?xml version="1.0"?>
+<owncloud>
+  <version>7.0.3.4</version>
+  <versionstring>ownCloud 7.0.3</versionstring>
+  <url>http://download.owncloud.org/community/owncloud-7.0.3.zip</url>
+  <web>http://owncloud.org/</web>
+</owncloud>')
+               ;
+               
+               $newResult = $updater->check();
+               $this->assertContains('version', $newResult);
+               $this->assertContains('versionstring', $newResult);
+               $this->assertContains('url', $newResult);
+               $this->assertContains('web', $newResult);
+               $this->assertEqual('7.0.3.4', $newResult['version']);
+               $this->assertEqual('ownCloud 7.0.3', $newResult['versionstring']);
+               $this->assertEqual('http://download.owncloud.org/community/owncloud-7.0.3.zip', $newResult['url']);
+               $this->assertEqual('http://owncloud.org/', $newResult['web']);
+       }
 
 }
\ No newline at end of file