-
Notifications
You must be signed in to change notification settings - Fork 4k
/
class-edit-site-export-test.php
37 lines (33 loc) · 1.39 KB
/
class-edit-site-export-test.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
/**
* Test `wp_generate_edit_site_export_file` and its helper functions.
*
* @package Gutenberg
*/
class Edit_Site_Export_Test extends WP_UnitTestCase {
function test_wp_generate_edit_site_export_file() {
$filename = wp_generate_edit_site_export_file();
$this->assertTrue( file_exists( $filename ), 'zip file is created at the specified path' );
$this->assertTrue( filesize( $filename ) > 0, 'zip file is larger than 0 bytes' );
// Open ZIP file and make sure the directories exist.
$zip = new ZipArchive();
$zip->open( $filename, ZipArchive::RDONLY );
$has_theme_dir = $zip->locateName( 'theme/' ) !== false;
$has_block_templates_dir = $zip->locateName( 'theme/templates/' ) !== false;
$has_block_template_parts_dir = $zip->locateName( 'theme/parts/' ) !== false;
$this->assertTrue( $has_theme_dir, 'theme directory exists' );
$this->assertTrue( $has_block_templates_dir, 'theme/templates directory exists' );
$this->assertTrue( $has_block_template_parts_dir, 'theme/parts directory exists' );
// ZIP file contains at least one HTML file.
$has_html_files = false;
$num_files = $zip->count();
for ( $i = 0; $i < $num_files; $i++ ) {
$filename = $zip->getNameIndex( $i );
if ( '.html' === substr( $filename, -5 ) ) {
$has_html_files = true;
break;
}
}
$this->assertTrue( $has_html_files, 'contains at least one html file' );
}
}