mirror of
				https://github.com/gtbu/Typesetter-5.3-p8.git
				synced 2025-11-04 14:58:28 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			142 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
 | 
						|
class phpunit_Update extends gptest_bootstrap{
 | 
						|
 | 
						|
	private $FileSystem;
 | 
						|
 | 
						|
	/**
 | 
						|
	 *
 | 
						|
	 */
 | 
						|
	function testUpdate(){
 | 
						|
 | 
						|
		$this->UpdateOutputTest();
 | 
						|
		$this->UpdateFilesystem();
 | 
						|
		$this->UpdatePackageInfo();
 | 
						|
		$this->DownloadSource();
 | 
						|
		$this->UnpackAndSort();
 | 
						|
		$this->ReplaceDirs();
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	/*
 | 
						|
	static function AssertTrue($condition, $msg = '' ){
 | 
						|
		global $page;
 | 
						|
 | 
						|
		if( $condition !== true && $page->update_msgs ){
 | 
						|
			echo "\n --".implode("\n --",$page->update_msgs);
 | 
						|
		}
 | 
						|
		parent::assertTrue($condition,$msg);
 | 
						|
	}
 | 
						|
	*/
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Very rough integration test of the updater
 | 
						|
	 * Passes if no errors are thrown
 | 
						|
	 * Also defines $page for subsequent tests
 | 
						|
	 *
 | 
						|
	 */
 | 
						|
	function UpdateOutputTest(){
 | 
						|
		global $page;
 | 
						|
 | 
						|
		$url		= '/include/install/update.php';
 | 
						|
		$response	= static::GuzzleRequest('GET',$url);
 | 
						|
 | 
						|
 | 
						|
		ob_start();
 | 
						|
		$page = new \gp\admin\Update();
 | 
						|
		//\gp\tool\Output::HeadContent();
 | 
						|
		//includeFile('install/update_template.php');
 | 
						|
		ob_get_clean();
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Filesystem method detection
 | 
						|
	 *
 | 
						|
	 */
 | 
						|
	function UpdateFilesystem(){
 | 
						|
		global $page;
 | 
						|
 | 
						|
		$filesystem_method = $page->DetectFileSystem();
 | 
						|
		self::AssertEquals($filesystem_method,'gp_filesystem_direct');
 | 
						|
 | 
						|
 | 
						|
		$this->FileSystem = \gp\tool\FileSystem::set_method('gp_filesystem_direct');
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Getting package info from gpeasy
 | 
						|
	 *
 | 
						|
	 */
 | 
						|
	function UpdatePackageInfo(){
 | 
						|
		global $page;
 | 
						|
 | 
						|
		$success = $page->DoRemoteCheck2();
 | 
						|
		self::AssertTrue($success,'DoRemoteCheck2 Failed');
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Make sure we can get the new source from gpeasy
 | 
						|
	 *
 | 
						|
	 */
 | 
						|
	function DownloadSource(){
 | 
						|
		global $page;
 | 
						|
 | 
						|
		$success = $page->DownloadSource();
 | 
						|
		self::AssertTrue($success,'Download Source Failed');
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Make sure the unzip and file replacement works
 | 
						|
	 *
 | 
						|
	 */
 | 
						|
	function UnpackAndSort(){
 | 
						|
		global $page;
 | 
						|
 | 
						|
		$success = $page->UnpackAndSort($page->core_package['file']);
 | 
						|
 | 
						|
		self::AssertTrue($success,'UnpackAndSort Failed');
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Make sure we can replace the directories
 | 
						|
	 *
 | 
						|
	 */
 | 
						|
	function ReplaceDirs(){
 | 
						|
		global $page;
 | 
						|
 | 
						|
 | 
						|
		$extra_dirs		= array();
 | 
						|
		$success		= $this->FileSystem->ReplaceDirs( $page->replace_dirs, $extra_dirs );
 | 
						|
		print_r($page->replace_dirs);
 | 
						|
		self::AssertTrue($success,'ReplaceDirs Failed');
 | 
						|
 | 
						|
		if( !$success ){
 | 
						|
			return;
 | 
						|
		}
 | 
						|
 | 
						|
 | 
						|
		//remove what we just installed
 | 
						|
		$remove = array_keys($page->replace_dirs);
 | 
						|
		$this->FileSystem->CleanUpFolders($remove, $not_deleted);
 | 
						|
 | 
						|
 | 
						|
		//reverse it
 | 
						|
		$replace_dirs	= $extra_dirs;
 | 
						|
		$extra_dirs		= array();
 | 
						|
		$success		= $this->FileSystem->ReplaceDirs( $replace_dirs, $extra_dirs );
 | 
						|
		self::AssertTrue($success,'ReplaceDirs Failed (2)');
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
}
 |