Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure no errors on CPTs without Yoast SEO metabox #103

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions inc/class-ac-yoast-acf-content-analysis.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ class AC_Yoast_SEO_ACF_Content_Analysis {
*/
public function init() {
add_action( 'admin_init', array( $this, 'admin_init' ) );

if ( $this->is_dev_environment() ) {
add_action( 'init', array( $this, 'add_cpt_for_tests' ) );
}
}

/**
Expand All @@ -30,7 +34,7 @@ public function admin_init() {

$this->boot();

if ( defined( 'AC_YOAST_ACF_ANALYSIS_ENVIRONMENT' ) && 'development' === AC_YOAST_ACF_ANALYSIS_ENVIRONMENT ) {
if ( $this->is_dev_environment() ) {
$this->boot_dev();
}

Expand Down Expand Up @@ -92,7 +96,7 @@ public function boot_dev() {
protected function register_config_filters() {
add_filter(
Yoast_ACF_Analysis_Facade::get_filter_name( 'scraper_config' ),
array( $this, 'filter_scraper_config')
array( $this, 'filter_scraper_config' )
);
}

Expand Down Expand Up @@ -223,4 +227,20 @@ protected function get_blacklist_type() {
protected function get_blacklist_name() {
return new Yoast_ACF_Analysis_String_Store();
}

/**
* Adds a CPT for tests
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you make this line more clear. I know where CPT stands for, but somebody who's new to the codebase probably won't know.

*/
public function add_cpt_for_tests() {
require_once AC_SEO_ACF_ANALYSIS_PLUGIN_PATH . '/tests/js/system/data/cpt-non-public.php';
}


/**
* @return bool
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice to have some documentation here.

*/
protected function is_dev_environment() {
return ( defined( 'AC_YOAST_ACF_ANALYSIS_ENVIRONMENT' ) && 'development' === AC_YOAST_ACF_ANALYSIS_ENVIRONMENT );
}

}
38 changes: 38 additions & 0 deletions tests/js/system/data/acf4.php
Original file line number Diff line number Diff line change
Expand Up @@ -100,4 +100,42 @@
),
'menu_order' => 0,
));

register_field_group(array (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add a space before array

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As this is coming out of the ACF Export function like this I'd rather leave it like this as it makes it easy to just C&P stuff on changes and having clean diffs. What do you think about that?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That 's okay for me 👍

'id' => 'acf_non-public-cpt',
'title' => 'Non Public CPT',
'fields' => array (
array (
'key' => 'field_59e897a8755dc',
'label' => 'Text',
'name' => 'yoast_acf_analysis_text',
'type' => 'text',
'default_value' => '',
'placeholder' => '',
'prepend' => '',
'append' => '',
'formatting' => 'html',
'maxlength' => '',
),
),
'location' => array (
array (
array (
'param' => 'post_type',
'operator' => '==',
'value' => 'test_non_public_cpt',
'order_no' => 0,
'group_no' => 0,
),
),
),
'options' => array (
'position' => 'normal',
'layout' => 'no_box',
'hide_on_screen' => array (
),
),
'menu_order' => 0,
));

}
46 changes: 46 additions & 0 deletions tests/js/system/data/acf5.php
Original file line number Diff line number Diff line change
Expand Up @@ -336,4 +336,50 @@
'description' => '',
));

acf_add_local_field_group(array (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add a space before array

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See above.

'key' => 'group_59e89863c6498',
'title' => 'Non Public CPT',
'fields' => array (
array (
'key' => 'field_59e897a8755dc',
'label' => 'Text',
'name' => 'yoast_acf_analysis_text',
'type' => 'text',
'value' => NULL,
'instructions' => '',
'required' => 0,
'conditional_logic' => 0,
'wrapper' => array (
'width' => '',
'class' => '',
'id' => '',
),
'default_value' => '',
'placeholder' => '',
'prepend' => '',
'append' => '',
'formatting' => 'html',
'maxlength' => '',
),
),
'location' => array (
array (
array (
'param' => 'post_type',
'operator' => '==',
'value' => 'test_non_public_cpt',
),
),
),
'menu_order' => 0,
'position' => 'normal',
'style' => 'seamless',
'label_placement' => 'top',
'instruction_placement' => 'label',
'hide_on_screen' => array (
),
'active' => 1,
'description' => '',
));

endif;
9 changes: 9 additions & 0 deletions tests/js/system/data/cpt-non-public.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php
$args = array(
'public' => false,
'show_ui' => true,
'supports' => array( 'thumbnail' ),
'label' => 'Non Public CPT',
);

register_post_type( 'test_non_public_cpt', $args );
8 changes: 6 additions & 2 deletions tests/js/system/pages/WordPressHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,12 @@ module.exports = {
this.click('@submitButton');
return this.waitForElementVisible('#adminmenu #menu-dashboard .current', 15000);
},
newPost: function(){
this.api.url( this.api.launchUrl + '/wp/wp-admin/post-new.php' );
newPost: function(cpt){
if(cpt !== undefined){
cpt = '?post_type=' + cpt;
}
cpt = cpt || '';
this.api.url( this.api.launchUrl + '/wp/wp-admin/post-new.php' + cpt );
this.waitForElementVisible('body.post-new-php', 15000);

return this.api.execute(function() {
Expand Down
38 changes: 38 additions & 0 deletions tests/js/system/tests/general/cpt.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
var simpleField = require('../../helpers/simpleField');
var Logger = require('nightwatch/lib/util/logger.js');

module.exports = {
tags: ['acf4', 'acf5', 'cpt'],

before: function (browser) {
var page = browser.page.WordPressHelper();
page.newPost('test_non_public_cpt');
},

beforeEach: function (browser) {
},

'Custom Post Type (non public->no metabox)' : function (browser) {
browser.getLog('browser', function(logEntriesArray) {

var errors = logEntriesArray.filter(function(log){
return log.level === 'SEVERE';
});

browser.assert.ok( errors.length === 0, "No JS errors thrown." )

var warnings = logEntriesArray.filter(function(log){
return log.level === 'WARNING';
});

warnings.forEach(function(log){
console.log(Logger.colors.light_purple(' WARNING: ' + log.message));
});

});
},

after : function(browser) {
browser.end();
}
};