| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | <?phpclass ElggUpgradeTest extends PHPUnit_Framework_TestCase {	/**	 * @var ElggUpgrade	 */	protected $obj;	public function setUp() {		// required by \ElggEntity when setting the owner/container		_elgg_services()->setValue('session', \ElggSession::getMock());		$this->obj = $this->getMockBuilder('\ElggUpgrade')				->setMethods(null)				->getMock();		$this->obj->_callable_egefps = array($this, 'mock_egefps');	}		public function mock_egefps($options) {		return array();	}	public function mock_egefps_with_entities() {		return array(new \stdClass());	}	public function mock_egefps_for_full_url($options) {		return array(new \stdClass());	}	public function mock_egefps_for_path($options) {		if ($options['private_setting_value'] === 'test') {			return array(new \stdClass());		} else {			return array();		}	}	public function testDefaultAttrs() {		$this->assertSame('elgg_upgrade', $this->obj->subtype);		$this->assertSame(0, $this->obj->container_guid);		$this->assertSame(0, $this->obj->owner_guid);		$this->assertSame(0, $this->obj->is_completed);	}	public function testSetPath() {		$path = 'admin/upgrades';		$this->obj->setPath($path);		$this->assertSame(elgg_normalize_url($path), $this->obj->getURL());	}	/**	 * @expectedException InvalidArgumentException	 */	public function testThrowsOnBadPath() {		$path = false;		$this->obj->setPath($path);	}	/**	 * @expectedException InvalidArgumentException	 */	public function testThrowsOnDuplicatePath() {		$this->obj->_callable_egefps = array($this, 'mock_egefps_with_entities');		$path = 'admin/upgrades';		$this->obj->setPath($path);	}	/**	 * @expectedException UnexpectedValueException	 * @expectedExceptionMessage ElggUpgrade objects must have a value for the upgrade_url property.	 */	public function testThrowsOnSaveWithoutPath() {		$this->obj->description = 'Test';		$this->obj->title = 'Test';		$this->obj->save();	}	/**	 * @expectedException UnexpectedValueException	 * @expectedExceptionMessage ElggUpgrade objects must have a value for the title property.	 */	public function testThrowsOnSaveWithoutTitle() {		$this->obj->setPath('test');		$this->obj->description = 'Test';		$this->obj->save();	}	/**	 * @expectedException UnexpectedValueException	 * @expectedExceptionMessage ElggUpgrade objects must have a value for the description property.	 */	public function testThrowsOnSaveWithoutDesc() {		$this->obj->setPath('test');		$this->obj->title = 'Test';		$this->obj->save();	}	public function testCanFindUpgradesByPath() {		$this->obj->_callable_egefps = array($this, 'mock_egefps_for_path');		$upgrade = $this->obj->getUpgradeFromPath('test');		$this->assertTrue((bool)$upgrade);	}	public function testCanFindUpgradesByFullUrl() {		$this->obj->_callable_egefps = array($this, 'mock_egefps_for_full_url');		$this->obj->upgrade_url = elgg_normalize_url('test');		$upgrade = $this->obj->getUpgradeFromPath('test');		$this->assertTrue((bool)$upgrade);		$this->assertSame('test', $upgrade->upgrade_url);	}	// can't test save without db mocking}
 |