diff --git a/.travis.yml b/.travis.yml index 88dcff8f48..0727f052a2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,24 @@ language: php + php: - 5.5 - 5.4 - 5.3 - 5.2 -before_script: - - mysql -e 'create database thinkup' - - cp extras/dev/config/config.inc.php webapp/config.inc.php - - cp extras/dev/config/config.tests.inc.php tests/config.tests.inc.php - - chmod -R 777 webapp/data - - mkdir webapp/data/logs/ - - touch webapp/data/logs/stream.log - - touch webapp/data/logs/crawler.log +env: + - JUST_INSTALL=1 + - SKIP_UPGRADE_TESTS=1 + +matrix: + exclude: + - php: 5.5 + env: JUST_INSTALL=1 + - php: 5.3 + env: JUST_INSTALL=1 + - php: 5.2 + env: JUST_INSTALL=1 + +before_script: extras/dev/travis/before.sh -script: php tests/all_unit_tests.php +script: php tests/all_tests.php diff --git a/extras/dev/config/config.inc.php b/extras/dev/config/config.inc.php index c1aca013eb..fff94134bc 100644 --- a/extras/dev/config/config.inc.php +++ b/extras/dev/config/config.inc.php @@ -70,7 +70,7 @@ // Set this to true if you want your PDO object's database connection's charset to be explicitly set to utf8. // If false (or unset), the database connection's charset will not be explicitly set. -$THINKUP_CFG['set_pdo_charset'] = false; +$THINKUP_CFG['set_pdo_charset'] = true; //TESTS OVERRIDE: Run against the tests database and use unpackaged developer /thinkup/webapp/ folder structure if ((isset($_COOKIE['TU_MODE']) && $_COOKIE['TU_MODE']=='TESTS') && !isset($_SESSION["RD_MODE"]) diff --git a/extras/dev/travis/before.sh b/extras/dev/travis/before.sh new file mode 100755 index 0000000000..239896d8b0 --- /dev/null +++ b/extras/dev/travis/before.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +sudo cp extras/dev/travis/my-override.cnf /etc/mysql/conf.d/ +sudo service mysql restart +mysql -e 'create database thinkup' +cp extras/dev/config/config.inc.php webapp/config.inc.php +cp extras/dev/config/config.tests.inc.php tests/config.tests.inc.php +mkdir webapp/data/sessions/ +chmod -R 777 webapp/data +chmod -f -R 777 build +mkdir webapp/data/logs/ + +touch webapp/data/logs/stream.log +touch webapp/data/logs/crawler.log +sudo apt-get install apache2 libapache2-mod-fastcgi +export PHPV=$(phpenv version-name) +echo "Running PHP = $PHPV" +echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$PHPV/etc/php.ini +if [ "$PHPV" = "5.2" ]; then + echo "I'm in here." + sudo sh -c "echo 'error_reporting = 22527' >> ~/.phpenv/versions/$PHPV/etc/php.ini" + sudo sh -c "echo 'session.save_path = "$(pwd)/webapp/data/sessions"' >> ~/.phpenv/versions/$PHPV/etc/php.ini" + sudo a2enmod rewrite actions alias + sudo cp -f extras/dev/travis/travis-ci-apache-php52 /etc/apache2/sites-available/default + sudo sed -e "s?%PHPPATH%?/home/travis/.phpenv/versions/5.2/bin?g" --in-place /etc/apache2/sites-available/default +else + sudo cp ~/.phpenv/versions/$PHPV/etc/php-fpm.conf.default ~/.phpenv/versions/$PHPV/etc/php-fpm.conf + sudo sh -c "echo 'php_value[error_reporting] = 22527' >> ~/.phpenv/versions/$PHPV/etc/php-fpm.conf" + sudo sh -c "echo 'php_value[session.save_path] = "$(pwd)/webapp/data/sessions"' >> ~/.phpenv/versions/$PHPV/etc/php-fpm.conf" + echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$PHPV/etc/php.ini + ~/.phpenv/versions/$PHPV/sbin/php-fpm + sudo a2enmod rewrite actions fastcgi alias + sudo cp -f extras/dev/travis/travis-ci-apache /etc/apache2/sites-available/default +fi + +sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)/webapp?g" --in-place /etc/apache2/sites-available/default +sudo service apache2 restart diff --git a/extras/dev/travis/my-override.cnf b/extras/dev/travis/my-override.cnf new file mode 100644 index 0000000000..a3d68ddcc9 --- /dev/null +++ b/extras/dev/travis/my-override.cnf @@ -0,0 +1,6 @@ +[mysqld] +collation-server = utf8_general_ci +collation_server = utf8_general_ci +init_connect='SET collation_connection = utf8_general_ci' +wait_timeout = 28800 +interactive_timeout = 28800 diff --git a/extras/dev/travis/travis-ci-apache b/extras/dev/travis/travis-ci-apache new file mode 100644 index 0000000000..8bd3c42c6a --- /dev/null +++ b/extras/dev/travis/travis-ci-apache @@ -0,0 +1,18 @@ + + DocumentRoot %TRAVIS_BUILD_DIR% + + + Options FollowSymLinks MultiViews ExecCGI + AllowOverride All + Order deny,allow + Allow from all + + + # Wire up Apache to use Travis CI's php-fpm. + + AddHandler php5-fcgi .php + Action php5-fcgi /php5-fcgi + Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi + FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization + + diff --git a/extras/dev/travis/travis-ci-apache-php52 b/extras/dev/travis/travis-ci-apache-php52 new file mode 100644 index 0000000000..bd25f414f6 --- /dev/null +++ b/extras/dev/travis/travis-ci-apache-php52 @@ -0,0 +1,15 @@ + + DocumentRoot %TRAVIS_BUILD_DIR% + + + Options FollowSymLinks MultiViews ExecCGI + AllowOverride All + Order deny,allow + Allow from all + + + ScriptAlias /local-bin %PHPPATH% + AddType application/x-httpd-php .php + AddHandler application/x-httpd-php5 php + Action application/x-httpd-php5 /local-bin/php-cgi + diff --git a/extras/scripts/generate-distribution b/extras/scripts/generate-distribution index b26225000d..8ea712e86a 100755 --- a/extras/scripts/generate-distribution +++ b/extras/scripts/generate-distribution @@ -9,7 +9,7 @@ if [ ! -d "$build" ]; then fi # Copy the webapp folder to build -cp -R webapp build/. +cp -R webapp build/. 2>/dev/null # Rename it thinkup mv build/webapp build/thinkup @@ -23,7 +23,7 @@ rm -rf build/thinkup/plugins/*/tests/ rm -rf build/thinkup/_lib/extlib/simpletest/ rm -rf build/thinkup/test_installer/ rm -rf build/thinkup/data/* -rm build/thinkup/data/.ht* +rm -f build/thinkup/data/.ht* cp -R webapp/data/README.md build/thinkup/data/. rm -rf build/thinkup/config.inc.php rm -rf build/thinkup/install/sql/build-db_mysql.sql @@ -41,4 +41,4 @@ rm -rf build/thinkup/plugins/insightsgenerator/insights/hellothinkupinsight.php cd build/ zip -r thinkup.zip thinkup zip -d thinkup.zip __MACOSX* *.DS_Store *.ecoder_permissions_check.txt -rm -rf thinkup \ No newline at end of file +rm -rf thinkup diff --git a/tests/WebTestOfInstallation.php b/tests/WebTestOfInstallation.php index 82d715a723..a911e13bd6 100644 --- a/tests/WebTestOfInstallation.php +++ b/tests/WebTestOfInstallation.php @@ -174,6 +174,7 @@ public function testSuccessfulInstallationInNonWritableFolder() { //sleep(1000); //Start installation process + @exec('chmod -R 555 webapp/test_installer/thinkup/data;'); $this->get($this->url.'/test_installer/thinkup/'); $this->assertTitle("ThinkUp"); @@ -203,6 +204,7 @@ public function testSuccessfulInstallationInNonWritableFolder() { $this->setField('db_passwd', $THINKUP_CFG['db_password']); $this->setField('db_socket', $THINKUP_CFG['db_socket']); $this->setField('db_prefix', $THINKUP_CFG['table_prefix']); + @exec('chmod 555 webapp/test_installer/thinkup;'); $this->clickSubmitByName('Submit'); $this->assertNoText('ThinkUp has been installed successfully. Check your email account; an account activation '. @@ -213,6 +215,7 @@ public function testSuccessfulInstallationInNonWritableFolder() { $this->assertTrue(!file_exists($THINKUP_CFG['source_root_path']. '/webapp/test_installer/thinkup/config.inc.php')); + @exec('chmod 777 webapp/test_installer/thinkup;'); @exec('touch webapp/test_installer/thinkup/config.inc.php;'. 'chmod 777 webapp/test_installer/thinkup/config.inc.php'); @@ -320,4 +323,4 @@ public function testFieldLevelMessagesForInvalidInputs() { // $this->get($this->url.'/test_installer/thinkup/install/index.php?step=2'); // $this->assertFieldById('timezone', ''); // } -} \ No newline at end of file +} diff --git a/tests/WebTestOfUpgradeDatabase.php b/tests/WebTestOfUpgradeDatabase.php index ebb94500cc..203e6b7444 100644 --- a/tests/WebTestOfUpgradeDatabase.php +++ b/tests/WebTestOfUpgradeDatabase.php @@ -155,6 +155,7 @@ private function setUpApp($version, $MIGRATIONS) { // run updates and migrations require dirname(__FILE__) . '/migration-assertions.php'; $this->debug("Setting up base install for upgrade: $version"); + $this->travisHeartbeat(); $zip_url = $MIGRATIONS[$version]['zip_url']; require THINKUP_WEBAPP_PATH.'config.inc.php'; @@ -175,11 +176,13 @@ private function setUpApp($version, $MIGRATIONS) { chdir(dirname(__FILE__) . '/../'); exec('cd webapp/test_installer/;chmod -R 777 thinkup/_lib/view/compiled_view;'); } + $this->travisSleepTest(); //Config file doesn't exist $this->assertFalse(file_exists($THINKUP_CFG['source_root_path']. 'webapp/test_installer/thinkup/config.inc.php')); + //Set test mode $this->get($this->url.'/test_installer/thinkup/install/setmode.php?m=tests'); //Include config again to get test db credentials @@ -300,6 +303,7 @@ private function runMigrations($TMIGRATIONS, $base_version, $fail = false) { require THINKUP_WEBAPP_PATH.'config.inc.php'; foreach($TMIGRATIONS as $version => $migration_data) { $this->debug("Running migration test for version: $version"); + $this->travisHeartbeat(); $url = $migration_data['zip_url']; $zipfile = $this->getInstall($url, $version, $this->installs_dir); $this->debug("unzipping $zipfile"); @@ -307,6 +311,7 @@ private function runMigrations($TMIGRATIONS, $base_version, $fail = false) { //Extract into test_installer directory and set necessary folder permissions exec('cp ' . $zipfile . ' webapp/test_installer/.;cd webapp/test_installer/;'. 'rm -rf thinkup/_lib;rm -rf thinkup/plugins;unzip -o ' . $zipfile.';'); + $this->travisSleepTest(); if (!file_exists($this->install_dir.'/thinkup/data/compiled_view')) { if (!file_exists($this->install_dir.'/thinkup/data')) { exec('mkdir thinkup/data;'); @@ -345,7 +350,9 @@ private function runMigrations($TMIGRATIONS, $base_version, $fail = false) { 'INSERT INTO tu_follows_b10 (SELECT', $msql); file_put_contents($migration_10, $msql); } - //sleep(1000); + if (getenv('TRAVIS')=='true') { + sleep(30); + } $this->get($this->url.'/test_installer/thinkup/'); $this->assertText("ThinkUp's database needs an upgrade"); // token could be in 1 of 2 places, depending on what version is running @@ -387,8 +394,8 @@ private function runMigrations($TMIGRATIONS, $base_version, $fail = false) { } $this->assertText('{ "processed":true,'); $content = $this->getBrowser()->getContent(); - if ( !preg_match('/"processed":true/', $content)) { - error_log($content); + if (!preg_match('/"processed":true/', $content)) { + $this->debug('ERROR: '.$content); return; } if (isset($json_array[$cnt]) && $json_array[$cnt]->version == $json_migration->version) { @@ -411,8 +418,8 @@ private function runMigrations($TMIGRATIONS, $base_version, $fail = false) { $this->assertEqual(preg_match($assertion_sql['match'], $data[ $assertion_sql['column'] ]), 1, $assertion_sql['match'] . ' should match ' . $data[ $assertion_sql['column'] ]); if ( ! preg_match($assertion_sql['match'], $data[ $assertion_sql['column'] ])) { - error_log("TEST FAIL DEBUGGING:"); - error_log('Query for assertion ' . $assertion_sql['query'] . " with match " + $this->debug("TEST FAIL DEBUGGING:"); + $this->debug('Query for assertion ' . $assertion_sql['query'] . " with match " . $assertion_sql['match'] . " failed"); } } @@ -480,4 +487,32 @@ private function getInstall($url, $version, $path) { } return $zipfile; } + + /** + * Travis will give up if tests go 10 minutes without any output. + * This will randomly spit out a .... to keep travis heappy. + */ + private function travisHeartbeat() { + // We've got to output something occasionally or travis thinks we died. + if (getenv('TRAVIS')=='true') { + print $str."\n"; + } + } + + /** + * Latency in travis means we occasionally need to sleep a bit + * and make sure that the new setup is ready before proceeding. + */ + private function travisSleepTest() { + if (getenv('TRAVIS')=='true') { + $tries = 0; + do { + $this->debug('Sleeping for Travis latency: ' . (10*$tries). ' seconds.'); + sleep(10 * $tries++); + $this->get($this->url.'/test_installer/thinkup/'); + $content = $this->getBrowser()->getContent(); + if ($tries > 3) break; + } while (preg_match('/Fatal error: (Class|Call to und)/', $content)); + } + } } diff --git a/tests/all_install_tests.php b/tests/all_install_tests.php index 9c979e5928..200245b232 100644 --- a/tests/all_install_tests.php +++ b/tests/all_install_tests.php @@ -52,4 +52,4 @@ if (isset($RUNNING_ALL_TESTS) && $RUNNING_ALL_TESTS) { $TOTAL_PASSES = $TOTAL_PASSES + $tr->getPassCount(); $TOTAL_FAILURES = $TOTAL_FAILURES + $tr->getFailCount(); -} \ No newline at end of file +} diff --git a/tests/all_tests.php b/tests/all_tests.php index 892ff55b6b..32efbc0e90 100644 --- a/tests/all_tests.php +++ b/tests/all_tests.php @@ -39,6 +39,7 @@ SKIP_UPGRADE_TESTS=1 Skip upgrade tests, ie, do a short run TEST_TIMING=1 Output test run timing information RD_MODE=1 Use database stored on RAM disk (for speed improvements) + JUST_INSTALL=1 Only run install tests Arguments: -help, -h Show this help message @@ -48,20 +49,30 @@ return; } +$JUST_INSTALL = getenv('JUST_INSTALL') == 1; + $RUNNING_ALL_TESTS = true; $TOTAL_PASSES = 0; $TOTAL_FAILURES = 0; $start_time = microtime(true); -require_once THINKUP_ROOT_PATH.'tests/all_model_tests.php'; +if (!$JUST_INSTALL) { + require_once THINKUP_ROOT_PATH.'tests/all_model_tests.php'; +} -require_once THINKUP_ROOT_PATH.'tests/all_plugin_tests.php'; +if (!$JUST_INSTALL) { + require_once THINKUP_ROOT_PATH.'tests/all_plugin_tests.php'; +} -require_once THINKUP_ROOT_PATH.'tests/all_integration_tests.php'; +if (!$JUST_INSTALL) { + require_once THINKUP_ROOT_PATH.'tests/all_integration_tests.php'; +} require_once THINKUP_ROOT_PATH.'tests/all_install_tests.php'; -require_once THINKUP_ROOT_PATH.'tests/all_controller_tests.php'; +if (!$JUST_INSTALL) { + require_once THINKUP_ROOT_PATH.'tests/all_controller_tests.php'; +} $end_time = microtime(true); $total_time = ($end_time - $start_time) / 60; @@ -77,3 +88,4 @@ " words of application documentation "; +if ($TOTAL_FAILURES > 0) exit(1); diff --git a/tests/classes/class.ThinkUpBasicUnitTestCase.php b/tests/classes/class.ThinkUpBasicUnitTestCase.php index 0dc7b4b357..3e2961db53 100644 --- a/tests/classes/class.ThinkUpBasicUnitTestCase.php +++ b/tests/classes/class.ThinkUpBasicUnitTestCase.php @@ -36,6 +36,18 @@ class ThinkUpBasicUnitTestCase extends UnitTestCase { */ const CSRF_TOKEN = 'test_csrf_token_123'; + /** + * Constructor + * Occasionally spit out a . if we are running in travis so that travis doesn't give up on us. + */ + public function __construct() { + parent::__construct(); + if (getenv('TRAVIS') == 'true') { + if (mt_rand(1,20) == 1) print "."; + sleep(3); + } + } + /** * Initialize Config and Webapp objects, clear $_SESSION, $_POST, $_GET, $_REQUEST */ diff --git a/tests/migration-assertions.php b/tests/migration-assertions.php index cb7249dd53..4b37566c45 100644 --- a/tests/migration-assertions.php +++ b/tests/migration-assertions.php @@ -35,7 +35,7 @@ $MIGRATIONS = array( /* beta 0.1 */ '0.1' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.1.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.1.zip', 'migration_assertions' => array( 'sql' => array( array( @@ -49,7 +49,7 @@ /* beta 0.2 */ '0.2' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.2.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.2.zip', 'migration_assertions' => array( 'sql' => array( array( @@ -68,7 +68,7 @@ /* beta 0.3 */ '0.3' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.3.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.3.zip', 'migration_assertions' => array( 'sql' => array( array( @@ -112,7 +112,7 @@ /* beta 0.4 */ '0.4' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.4.1.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.4.1.zip', 'migrations' => 1, 'migration_assertions' => array( 'sql' => array( @@ -134,7 +134,7 @@ /* beta 0.5 */ '0.5' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.5.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.5.zip', 'migrations' => 1, 'migration_assertions' => array( 'sql' => array( @@ -156,7 +156,7 @@ /* beta 0.6 */ '0.6' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.6.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.6.zip', 'migrations' => 1, 'migration_assertions' => array( 'sql' => array( @@ -201,7 +201,7 @@ /* beta 0.7 */ '0.7' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.7.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.7.zip', 'migrations' => 1, 'setup_sql' => array("DROP TABLE IF EXISTS tu_plugin_options", "CREATE TABLE `tu_plugin_options` (" . @@ -247,7 +247,7 @@ /* beta 0.8 */ '0.8' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.8.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.8.zip', 'migrations' => 1, 'migration_assertions' => array( 'sql' => array( @@ -266,7 +266,7 @@ /* beta 0.9 */ '0.9' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.9.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.9.zip', 'migrations' => 1, 'setup_sql' => array("INSERT INTO tu_plugins (name, folder_name, is_active) VALUES ('Flickr Thumbnails', ". " 'flickthumbnails', 1);"), @@ -288,7 +288,7 @@ /* beta 0.10 */ '0.10' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.10.1.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.10.1.zip', 'migrations' => 1, 'migration_assertions' => array( 'sql' => array( @@ -347,7 +347,7 @@ /* beta 0.11 */ '0.11' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.11.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.11.zip', 'migrations' => 1, 'migration_assertions' => array( 'sql' => array( @@ -364,7 +364,7 @@ /* beta 0.12 */ '0.12' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.12.1.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.12.1.zip', 'migrations' => 1, 'setup_sql' => array("INSERT INTO tu_plugins (name, folder_name, is_active) VALUES ('Embed Thread', ". "'embedthread', 1);"), @@ -393,7 +393,7 @@ /* beta 0.13 */ '0.13' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.13.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.13.zip', 'migrations' => 1, 'migration_assertions' => array( 'sql' => array( @@ -416,7 +416,7 @@ /* beta 0.14 */ '0.14' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.14.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.14.zip', 'migrations' => 1, 'migration_assertions' => array( 'sql' => array( @@ -492,7 +492,7 @@ /* beta 0.15 */ '0.15' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.15.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.15.zip', 'migrations' => 1, 'migration_assertions' => array( 'sql' => array( @@ -543,7 +543,7 @@ /* beta 0.16 */ '0.16' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.16.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.16.zip', 'migrations' => 1, 'migration_assertions' => array( 'sql' => array( @@ -713,7 +713,7 @@ /* beta 0.17 */ '0.17' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-0.17.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-0.17.zip', 'migrations' => 1, 'migration_assertions' => array( 'sql' => array( @@ -738,25 +738,25 @@ /* 1.0 */ '1.0' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-1.0.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-1.0.zip', 'migrations' => 0, ), /* 1.0.1 */ '1.0.1' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-1.0.1.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-1.0.1.zip', 'migrations' => 0, ), /* 1.0.2 */ '1.0.2' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-1.0.2.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-1.0.2.zip', 'migrations' => 0, ), /* 1.0.3 */ '1.0.3' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-1.0.3.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-1.0.3.zip', 'migrations' => 1, 'migration_assertions' => array( 'sql' => array( @@ -805,31 +805,31 @@ /* 1.0.4 */ '1.0.4' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-1.0.4.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-1.0.4.zip', 'migrations' => 0, ), /* 1.0.5 */ '1.0.5' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-1.0.5.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-1.0.5.zip', 'migrations' => 0, ), /* 1.0.6 */ '1.0.6' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-1.0.6.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-1.0.6.zip', 'migrations' => 0, ), /* 1.0.7 */ '1.0.7' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-1.0.7.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-1.0.7.zip', 'migrations' => 0, ), /* 1.0.8.1 */ '1.0.8.1' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-1.0.8.1.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-1.0.8.1.zip', 'migrations' => 1, 'migration_assertions' => array( 'sql' => array( @@ -857,7 +857,7 @@ /* 1.1 */ '1.1' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-1.1.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-1.1.zip', 'migrations' => 1, 'migration_assertions' => array( 'sql' => array( @@ -921,25 +921,25 @@ /* 1.1.1 */ '1.1.1' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-1.1.1.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-1.1.1.zip', 'migrations' => 0, ), /* 1.2 */ '1.2' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-1.2.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-1.2.zip', 'migrations' => 0, ), /* 1.2.1 */ '1.2.1' => array( - 'zip_url' => 'https://thinkup.com/downloads/thinkup-1.2.1.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/thinkup-1.2.1.zip', 'migrations' => 0, ), /* 2.0-beta.1 */ '2.0-beta.1' => array( - 'zip_url' => 'https://thinkup.com/downloads/beta/thinkup-2.0-beta.1.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/beta/thinkup-2.0-beta.1.zip', 'migrations' => 3, 'migration_assertions' => array( 'sql' => array( @@ -966,13 +966,13 @@ /* 2.0-beta.2 */ '2.0-beta.2' => array( - 'zip_url' => 'https://thinkup.com/downloads/beta/thinkup-2.0-beta.2.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/beta/thinkup-2.0-beta.2.zip', 'migrations' => 0, ), /* 2.0-beta.3 */ '2.0-beta.3' => array( - 'zip_url' => 'https://thinkup.com/downloads/beta/thinkup-2.0-beta.3.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/beta/thinkup-2.0-beta.3.zip', 'migrations' => 3, 'setup_sql' => array("INSERT INTO tu_options (option_id, option_name, option_value) " . "VALUES (2345, 'favs_older_pages', 'test_plugin_value');". @@ -1001,25 +1001,25 @@ /* 2.0-beta.4 */ '2.0-beta.4' => array( - 'zip_url' => 'https://thinkup.com/downloads/beta/thinkup-2.0-beta.4.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/beta/thinkup-2.0-beta.4.zip', 'migrations' => 0, ), /* 2.0-beta.5 */ '2.0-beta.5' => array( - 'zip_url' => 'https://thinkup.com/downloads/beta/thinkup-2.0-beta.4.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/beta/thinkup-2.0-beta.4.zip', 'migrations' => 0, ), /* 2.0-beta.6 */ '2.0-beta.6' => array( - 'zip_url' => 'https://thinkup.com/downloads/beta/thinkup-2.0-beta.6.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/beta/thinkup-2.0-beta.6.zip', 'migrations' => 0, ), /* 2.0-beta.7 */ '2.0-beta.7' => array( - 'zip_url' => 'https://thinkup.com/downloads/beta/thinkup-2.0-beta.7.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/beta/thinkup-2.0-beta.7.zip', 'migrations' => 0, 'migration_assertions' => array( 'sql' => array( @@ -1047,13 +1047,13 @@ /* 2.0-beta.8 */ '2.0-beta.8' => array( - 'zip_url' => 'https://thinkup.com/downloads/beta/thinkup-2.0-beta.8.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/beta/thinkup-2.0-beta.8.zip', 'migrations' => 0, ), /* 2.0-beta.9 */ '2.0-beta.9' => array( - 'zip_url' => 'https://thinkup.com/downloads/beta/thinkup-2.0-beta.9.zip', + 'zip_url' => 'https://www.thinkup.com/downloads/beta/thinkup-2.0-beta.9.zip', 'migrations' => 0, 'migration_assertions' => array( 'sql' => array(