@@ -17,7 +17,7 @@ public function test_restore_into_cwd_by_default_with_all_content_types()
1717 $ this ->assertEquals (0 , mysqli_num_rows ($ result ));
1818
1919 $ zipFile = $ this ->buildZip (function (\ZipArchive $ zip ) {
20- $ zip ->addFromString ('.env ' , "APP_KEY=abc123 \nAPP_URL=https://example.com " );
20+ $ zip ->addFromString ('.env ' , "APP_KEY=abc123 \nAPP_URL=https://restore. example.com " );
2121 $ zip ->addFromString ('public/uploads/test.txt ' , 'hello-public-uploads ' );
2222 $ zip ->addFromString ('storage/uploads/test.txt ' , 'hello-storage-uploads ' );
2323 $ zip ->addFromString ('themes/test.txt ' , 'hello-themes ' );
@@ -29,15 +29,17 @@ public function test_restore_into_cwd_by_default_with_all_content_types()
2929
3030 $ result = $ this ->runCommand ('restore ' , [
3131 'backup-zip ' => $ zipFile ,
32- ], ['yes ' , '1 ' ]);
32+ ], ['yes ' , '1 ' ]); // This restore uses the existing (Non-backup) APP_URL
3333
34+ $ result ->dumpError ();
3435 $ result ->assertSuccessfulExit ();
3536 $ result ->assertStdoutContains ('✔ .env Config File ' );
3637 $ result ->assertStdoutContains ('✔ Themes Folder ' );
3738 $ result ->assertStdoutContains ('✔ Public File Uploads ' );
3839 $ result ->assertStdoutContains ('✔ Private File Uploads ' );
3940 $ result ->assertStdoutContains ('✔ Database Dump ' );
4041 $ result ->assertStdoutContains ('Restore operation complete! ' );
42+ $ result ->assertStdoutContains ('App URL change made, updating database with URL change ' );
4143
4244 $ result = $ mysql ->query ('SELECT * FROM zz_testing where names = \'barry \'; ' );
4345 $ this ->assertEquals (1 , mysqli_num_rows ($ result ));
@@ -47,14 +49,40 @@ public function test_restore_into_cwd_by_default_with_all_content_types()
4749 $ this ->assertStringEqualsFile ('/var/www/bookstack-restore/public/uploads/test.txt ' , 'hello-public-uploads ' );
4850 $ this ->assertStringEqualsFile ('/var/www/bookstack-restore/storage/uploads/test.txt ' , 'hello-storage-uploads ' );
4951 $ this ->assertStringEqualsFile ('/var/www/bookstack-restore/themes/test.txt ' , 'hello-themes ' );
52+
5053 $ env = file_get_contents ('/var/www/bookstack-restore/.env ' );
5154 $ this ->assertStringContainsString ('APP_KEY=abc123 ' , $ env );
52- $ this ->assertStringContainsString ('APP_URL=https://example.com ' , $ env );
55+ $ this ->assertStringNotContainsString ('APP_URL=https://restore.example.com ' , $ env );
56+ $ this ->assertStringContainsString ('APP_URL="https://example.com" ' , $ env );
5357
5458 $ mysql ->query ("DROP TABLE zz_testing; " );
5559 exec ('rm -rf /var/www/bookstack-restore ' );
5660 }
5761
62+ public function test_restore_using_backup_env_url ()
63+ {
64+ $ zipFile = $ this ->buildZip (function (\ZipArchive $ zip ) {
65+ $ zip ->addFromString ('.env ' , "APP_KEY=abc123 \nAPP_URL=https://restore.example.com " );
66+ });
67+
68+ exec ('cp -r /var/www/bookstack /var/www/bookstack-restore-backup-env ' );
69+ chdir ('/var/www/bookstack-restore-backup-env ' );
70+
71+ $ result = $ this ->runCommand ('restore ' , [
72+ 'backup-zip ' => $ zipFile ,
73+ ], ['yes ' , '0 ' ]); // This restore uses the old (Backup) APP_URL
74+
75+ $ result ->assertSuccessfulExit ();
76+ $ result ->assertStdoutContains ('✔ .env Config File ' );
77+ $ result ->assertStdoutContains ('Restore operation complete! ' );
78+
79+ $ env = file_get_contents ('/var/www/bookstack-restore-backup-env/.env ' );
80+ $ this ->assertStringContainsString ('APP_KEY=abc123 ' , $ env );
81+ $ this ->assertStringContainsString ('APP_URL="https://restore.example.com" ' , $ env );
82+
83+ exec ('rm -rf /var/www/bookstack-restore-backup-env ' );
84+ }
85+
5886 public function test_command_fails_on_zip_with_no_expected_contents ()
5987 {
6088 $ zipFile = $ this ->buildZip (function (\ZipArchive $ zip ) {
0 commit comments