/**
  * Constructor
  * @return AppUpgraderClient
  */
 public function __construct()
 {
     $config = Config::getInstance();
     $is_in_beta = $config->getValue('is_subscribed_to_beta');
     $is_in_beta = isset($is_in_beta) ? $is_in_beta : false;
     if ($is_in_beta) {
         self::$UPDATE_URL = self::$UPDATE_BETA_URL;
     }
 }
 public function testUpdate()
 {
     $upgrade_controller = new UpgradeApplicationController(true);
     $valid_url = AppUpgraderClient::$UPDATE_URL;
     error_reporting(E_ERROR | E_USER_ERROR);
     // turn off warning messages
     $config = Config::getInstance();
     $proper_version = $config->getValue('THINKUP_VERSION');
     $config->setValue('THINKUP_VERSION', 1.0);
     //set a low version num
     // delete index.pho
     $this->assertTrue(unlink($this->test_web_dir . '/index.php'));
     // create a file in out data dir
     touch($this->test_web_dir . '/data/dont_delete_me');
     AppUpgraderClient::$UPDATE_URL = $this->test_web_dir . '/data/valid_json';
     file_put_contents(AppUpgraderClient::$UPDATE_URL, '{"version":"100.1", "url":"' . THINKUP_WEBAPP_PATH . 'test_installer/thinkup.zip"}');
     $update_info = $upgrade_controller->runUpdate($this->test_web_dir);
     $this->assertPattern('/data\\/\\d+\\-v1\\-config\\.inc\\.backup\\.php/', $update_info['config']);
     $this->assertPattern('/data\\/\\d+\\-v1\\-backup\\.zip/', $update_info['backup']);
     $this->assertTrue(file_exists($this->test_web_dir . '/index.php'), "we should have our index file back");
     $data_path = FileDataManager::getDataPath();
     $this->assertFalse(is_dir($data_path . '/data/thinkup'), "our unzipped update deleted");
     $this->assertTrue(file_exists($this->test_web_dir . '/data/dont_delete_me'), "/data/* not deleted");
     unlink(AppUpgraderClient::$UPDATE_URL);
     // reset
     AppUpgraderClient::$UPDATE_URL = $valid_url;
     error_reporting(E_STRICT);
     // reset error reporting
     $config->setValue('THINKUP_VERSION', $proper_version);
 }