Skip to content
This repository has been archived by the owner on Sep 16, 2019. It is now read-only.

Commit

Permalink
Merge pull request #288 from josh-rathke/master
Browse files Browse the repository at this point in the history
Wordpress Coding Standards & Unit Testing Setup via Travis CI
  • Loading branch information
olefredrik committed Apr 6, 2015
2 parents 78d5148 + f687310 commit e0fcbd6
Show file tree
Hide file tree
Showing 33 changed files with 635 additions and 503 deletions.
110 changes: 110 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# Travis CI (MIT License) configuration file for the FoundationPress WordPress theme
# @link https://travis-ci.org/

# For use with the FoundationPress WordPress theme
# @link https://github.com/olefredrik/FoundationPress

# Declare project language.
# @link http://about.travis-ci.org/docs/user/languages/php/
language: php

# Declare versions of PHP to use. Use one decimal max.
php:
# aliased to a recent 5.5.x version
- "5.5"
# aliased to a recent 5.4.x version
- "5.4"
# aliased to a recent 5.3.x version
- "5.3"
# Current $required_php_version for WordPress: 5.2.4
- "5.2"

# Declare which versions of WordPress to test against.
# Also declare whether or not to test in Multisite.
env:
# Trunk
# @link https://github.com/WordPress/WordPress
- WP_VERSION=master WP_MULTISITE=0
# WordPress 4.1
# @link https://github.com/WordPress/WordPress/tree/4.1-branch
- WP_VERSION=4.1 WP_MULTISITE=0
# WordPress 4.0
# @link https://github.com/WordPress/WordPress/tree/4.0-branch
- WP_VERSION=4.0 WP_MULTISITE=0

# Declare 5.6 beta in test matrix.
# @link https://buddypress.trac.wordpress.org/ticket/5620
# @link http://docs.travis-ci.com/user/build-configuration/
matrix:
include:
- php: 5.6
env: WP_VERSION=master
allow_failures:
- php: 5.6
fast_finish: true

# Use this to prepare the system to install prerequisites or dependencies.
# e.g. sudo apt-get update.
# Failures in this section will result in build status 'errored'.
# before_install:

# Use this to prepare your build for testing.
# e.g. copy database configurations, environment variables, etc.
# Failures in this section will result in build status 'errored'.
before_script:
# Set up WordPress installation.
- export WP_DEVELOP_DIR=/tmp/wordpress/
- mkdir -p $WP_DEVELOP_DIR
# Use the Git mirror of WordPress.
- git clone --depth=1 --branch="$WP_VERSION" git://develop.git.wordpress.org/ $WP_DEVELOP_DIR
# Set up theme information.
- theme_slug=$(basename $(pwd))
- theme_dir=$WP_DEVELOP_DIR/src/wp-content/themes/$theme_slug
- cd ..
- mv $theme_slug $theme_dir
# Set up WordPress configuration.
- cd $WP_DEVELOP_DIR
- echo $WP_DEVELOP_DIR
- cp wp-tests-config-sample.php wp-tests-config.php
- sed -i "s/youremptytestdbnamehere/wordpress_test/" wp-tests-config.php
- sed -i "s/yourusernamehere/root/" wp-tests-config.php
- sed -i "s/yourpasswordhere//" wp-tests-config.php
# Create WordPress database.
- mysql -e 'CREATE DATABASE wordpress_test;' -uroot
# Install CodeSniffer for WordPress Coding Standards checks.
- git clone https://github.com/squizlabs/PHP_CodeSniffer.git php-codesniffer
# Install WordPress Coding Standards.
- git clone https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git wordpress-coding-standards
# Hop into CodeSniffer directory.
- cd php-codesniffer
# Set install path for WordPress Coding Standards
# @link https://github.com/squizlabs/PHP_CodeSniffer/blob/4237c2fc98cc838730b76ee9cee316f99286a2a7/CodeSniffer.php#L1941
- scripts/phpcs --config-set installed_paths ../wordpress-coding-standards
# Hop into themes directory.
- cd $theme_dir
# After CodeSniffer install you should refresh your path.
- phpenv rehash

# Run test script commands.
# Default is specific to project language.
# All commands must exit with code 0 on success. Anything else is considered failure.
script:
# Search for PHP syntax errors.
- find . \( -name '*.php' \) -exec php -lf {} \;
# WordPress Coding Standards
# @link https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards
# @link http://pear.php.net/package/PHP_CodeSniffer/
# -p flag: Show progress of the run.
# -s flag: Show sniff codes in all reports.
# -v flag: Print verbose output.
# -n flag: Do not print warnings (shortcut for --warning-severity=0)
# --standard: Use WordPress as the standard.
# --extensions: Only sniff PHP files.
# --ignore: Ignore these files/directories
- $WP_DEVELOP_DIR/php-codesniffer/scripts/phpcs -p -s -v -n . --standard=./codesniffer.ruleset.xml --extensions=php --ignore=./bower_components/


# Receive notifications for build results.
# @link http://docs.travis-ci.com/user/notifications/#Email-notifications
notifications:
email: false
12 changes: 6 additions & 6 deletions 404.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@

<article <?php post_class() ?> id="post-<?php the_ID(); ?>">
<header>
<h1 class="entry-title"><?php _e('File Not Found', 'FoundationPress'); ?></h1>
<h1 class="entry-title"><?php _e( 'File Not Found', 'FoundationPress' ); ?></h1>
</header>
<div class="entry-content">
<div class="error">
<p class="bottom"><?php _e('The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.', 'FoundationPress'); ?></p>
<p class="bottom"><?php _e( 'The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.', 'FoundationPress' ); ?></p>
</div>
<p><?php _e('Please try the following:', 'FoundationPress'); ?></p>
<p><?php _e( 'Please try the following:', 'FoundationPress' ); ?></p>
<ul>
<li><?php _e('Check your spelling', 'FoundationPress'); ?></li>
<li><?php printf(__('Return to the <a href="%s">home page</a>', 'FoundationPress'), home_url()); ?></li>
<li><?php _e('Click the <a href="javascript:history.back()">Back</a> button', 'FoundationPress'); ?></li>
<li><?php _e( 'Check your spelling', 'FoundationPress' ); ?></li>
<li><?php printf( __( 'Return to the <a href="%s">home page</a>', 'FoundationPress' ), home_url() ); ?></li>
<li><?php _e( 'Click the <a href="javascript:history.back()">Back</a> button', 'FoundationPress' ); ?></li>
</ul>
</div>
</article>
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,10 @@ Check for Foundation Updates? Run:
* [Clean FoundationPress install](http://foundationpress.olefredrik.com/)
* [FoundationPress Kitchen Sink - see every single element in action](http://foundationpress.olefredrik.com/kitchen-sink/)

## Unit Testing With Travis CI
FoundationPress is completely ready to be deployed to and tested by Travis CI for Wordpress Coding Standards and best practices. All you need to do to activate the test is sign up and follow the instructions to point Travis CI towards your repo.
[Travis CI](https://travis-ci.org/)

## UI toolkits for rapid prototyping

* [Foundation UI Kit for Axure RP](https://gumroad.com/l/foundation-ui-kit-axure-rp)
Expand Down
2 changes: 1 addition & 1 deletion archive.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<?php endif; // end have_posts() check ?>

<?php /* Display navigation to next/previous pages when applicable */ ?>
<?php if ( function_exists('FoundationPress_pagination') ) { FoundationPress_pagination(); } else if ( is_paged() ) { ?>
<?php if ( function_exists( 'foundationpress_pagination' ) ) { foundationpress_pagination(); } else if ( is_paged() ) { ?>
<nav id="post-nav">
<div class="post-previous"><?php next_posts_link( __( '&larr; Older posts', 'FoundationPress' ) ); ?></div>
<div class="post-next"><?php previous_posts_link( __( 'Newer posts &rarr;', 'FoundationPress' ) ); ?></div>
Expand Down
19 changes: 19 additions & 0 deletions codesniffer.ruleset.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0"?>
<ruleset name="FoundationPress Theme, Wordpress Coding Standards Configuration">
<!-- See https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml -->
<!-- See https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/blob/develop/WordPress-Core/ruleset.xml -->

<!-- Set a description for this ruleset. -->
<description>A series of tests used to check FoundationPress for compliance with Wordpress Coding Standards</description>

<!-- Include the WordPress ruleset, with exclusions. -->
<rule ref="WordPress">
<exclude name="Generic.WhiteSpace.ScopeIndent.Incorrect" />
<exclude name="PEAR.Functions.FunctionCallSignature.Indent" />
<exclude name="Generic.WhiteSpace.ScopeIndent.IncorrectExact" />

<exclude name="WordPress.XSS.EscapeOutput" />
<exclude name="WordPress.WhiteSpace.ScopeIndent.Incorrect" />
<exclude name="WordPress.Variables.GlobalVariables" />
</rule>
</ruleset>
75 changes: 37 additions & 38 deletions comments.php
Original file line number Diff line number Diff line change
@@ -1,95 +1,94 @@
<?php
if ( have_comments() ) :
if( (is_page() || is_single()) && (!is_home() && !is_front_page()) ) :
<?php
if ( have_comments() ) :
if ( (is_page() || is_single()) && ( ! is_home() && ! is_front_page()) ) :
?>
<section id="comments"><?php
<section id="comments"><?php


wp_list_comments(

array(
'walker' => new FoundationPress_comments(),
'walker' => new FoundationPress_comments(),
'max_depth' => '',
'style' => 'ol',
'callback' => null,
'end-callback' => null,
'type' => 'all',
'reply_text' => __('Reply', 'FoundationPress'),
'reply_text' => __( 'Reply', 'FoundationPress' ),
'page' => '',
'per_page' => '',
'avatar_size' => 48,
'reverse_top_level' => null,
'reverse_children' => '',
'format' => 'html5',
'short_ping' => false,
'echo' => true,
'moderation' => __('Your comment is awaiting moderation.', 'FoundationPress'),
'format' => 'html5',
'short_ping' => false,
'echo' => true,
'moderation' => __( 'Your comment is awaiting moderation.', 'FoundationPress' ),
)
);

?>

</section>
<?php
<?php
endif;
endif;
?>

<?php
// Do not delete these lines
if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
die (__('Please do not load this page directly. Thanks!', 'FoundationPress'));
if ( ! empty( sanitize_file_name( $_SERVER['SCRIPT_FILENAME'] ) ) && 'comments.php' == basename( sanitize_file_name( $_SERVER['SCRIPT_FILENAME'] ) ) ) {
die (__( 'Please do not load this page directly. Thanks!', 'FoundationPress' )); }

if ( post_password_required() ) { ?>
<section id="comments">
<div class="notice">
<p class="bottom"><?php _e('This post is password protected. Enter the password to view comments.', 'FoundationPress'); ?></p>
<p class="bottom"><?php _e( 'This post is password protected. Enter the password to view comments.', 'FoundationPress' ); ?></p>
</div>
</section>
<?php
return;
}
?>

<?php
if ( comments_open() ) :
if( (is_page() || is_single()) && (!is_home() && !is_front_page()) ) :
<?php
if ( comments_open() ) :
if ( (is_page() || is_single()) && ( ! is_home() && ! is_front_page()) ) :
?>
<section id="respond">
<h3><?php comment_form_title( __('Leave a Reply', 'FoundationPress'), __('Leave a Reply to %s', 'FoundationPress') ); ?></h3>
<h3><?php comment_form_title( __( 'Leave a Reply', 'FoundationPress' ), __( 'Leave a Reply to %s', 'FoundationPress' ) ); ?></h3>
<p class="cancel-comment-reply"><?php cancel_comment_reply_link(); ?></p>
<?php if ( get_option('comment_registration') && !is_user_logged_in() ) : ?>
<p><?php printf( __('You must be <a href="%s">logged in</a> to post a comment.', 'FoundationPress'), wp_login_url( get_permalink() ) ); ?></p>
<?php if ( get_option( 'comment_registration' ) && ! is_user_logged_in() ) : ?>
<p><?php printf( __( 'You must be <a href="%s">logged in</a> to post a comment.', 'FoundationPress' ), wp_login_url( get_permalink() ) ); ?></p>
<?php else : ?>
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
<form action="<?php echo get_option( 'siteurl' ); ?>/wp-comments-post.php" method="post" id="commentform">
<?php if ( is_user_logged_in() ) : ?>
<p><?php printf(__('Logged in as <a href="%s/wp-admin/profile.php">%s</a>.', 'FoundationPress'), get_option('siteurl'), $user_identity); ?> <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="<?php __('Log out of this account', 'FoundationPress'); ?>"><?php _e('Log out &raquo;', 'FoundationPress'); ?></a></p>
<p><?php printf( __( 'Logged in as <a href="%s/wp-admin/profile.php">%s</a>.', 'FoundationPress' ), get_option( 'siteurl' ), $user_identity ); ?> <a href="<?php echo wp_logout_url( get_permalink() ); ?>" title="<?php __( 'Log out of this account', 'FoundationPress' ); ?>"><?php _e( 'Log out &raquo;', 'FoundationPress' ); ?></a></p>
<?php else : ?>
<p>
<label for="author"><?php _e('Name', 'FoundationPress'); if ($req) _e(' (required)', 'FoundationPress'); ?></label>
<input type="text" class="five" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?>>
<label for="author"><?php _e( 'Name', 'FoundationPress' ); if ( $req ) { _e( ' (required)', 'FoundationPress' ); } ?></label>
<input type="text" class="five" name="author" id="author" value="<?php echo esc_attr( $comment_author ); ?>" size="22" tabindex="1" <?php if ( $req ) { echo "aria-required='true'"; } ?>>
</p>
<p>
<label for="email"><?php _e('Email (will not be published)', 'FoundationPress'); if ($req) _e(' (required)', 'FoundationPress'); ?></label>
<input type="text" class="five" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?>>
<label for="email"><?php _e( 'Email (will not be published)', 'FoundationPress' ); if ( $req ) { _e( ' (required)', 'FoundationPress' ); } ?></label>
<input type="text" class="five" name="email" id="email" value="<?php echo esc_attr( $comment_author_email ); ?>" size="22" tabindex="2" <?php if ( $req ) { echo "aria-required='true'"; } ?>>
</p>
<p>
<label for="url"><?php _e('Website', 'FoundationPress'); ?></label>
<input type="text" class="five" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="22" tabindex="3">
<label for="url"><?php _e( 'Website', 'FoundationPress' ); ?></label>
<input type="text" class="five" name="url" id="url" value="<?php echo esc_attr( $comment_author_url ); ?>" size="22" tabindex="3">
</p>
<?php endif; ?>
<p>
<label for="comment"><?php _e('Comment', 'FoundationPress'); ?></label>
<label for="comment"><?php _e( 'Comment', 'FoundationPress' ); ?></label>
<textarea name="comment" id="comment" tabindex="4"></textarea>
</p>
<p id="allowed_tags" class="small"><strong>XHTML:</strong> <?php _e('You can use these tags:','FoundationPress'); ?> <code><?php echo allowed_tags(); ?></code></p>
<p><input name="submit" class="button" type="submit" id="submit" tabindex="5" value="<?php esc_attr_e('Submit Comment', 'FoundationPress'); ?>"></p>
<p id="allowed_tags" class="small"><strong>XHTML:</strong> <?php _e( 'You can use these tags:','FoundationPress' ); ?> <code><?php echo allowed_tags(); ?></code></p>
<p><input name="submit" class="button" type="submit" id="submit" tabindex="5" value="<?php esc_attr_e( 'Submit Comment', 'FoundationPress' ); ?>"></p>
<?php comment_id_fields(); ?>
<?php do_action('comment_form', $post->ID); ?>
<?php do_action( 'comment_form', $post->ID ); ?>
</form>
<?php endif; // If registration required and not logged in ?>
</section>
<?php
<?php
endif; // if you delete this the sky will fall on your head
endif; // if you delete this the sky will fall on your head
endif; // if you delete this the sky will fall on your head
?>
6 changes: 3 additions & 3 deletions content.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<header>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php FoundationPress_entry_meta(); ?>
<?php foundationpress_entry_meta(); ?>
</header>
<div class="entry-content">
<?php the_content(__('Continue reading...', 'FoundationPress')); ?>
<?php the_content( __( 'Continue reading...', 'FoundationPress' ) ); ?>
</div>
<footer>
<?php $tag = get_the_tags(); if (!$tag) { } else { ?><p><?php the_tags(); ?></p><?php } ?>
<?php $tag = get_the_tags(); if ( ! $tag ) { } else { ?><p><?php the_tags(); ?></p><?php } ?>
</footer>
<hr />
</article>
10 changes: 5 additions & 5 deletions footer.php
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
</section>
<footer class="row">
<?php do_action('foundationPress_before_footer'); ?>
<?php dynamic_sidebar("footer-widgets"); ?>
<?php do_action('foundationPress_after_footer'); ?>
<?php do_action( 'foundationPress_before_footer' ); ?>
<?php dynamic_sidebar( 'footer-widgets' ); ?>
<?php do_action( 'foundationPress_after_footer' ); ?>
</footer>
<a class="exit-off-canvas"></a>

<?php do_action('foundationPress_layout_end'); ?>
<?php do_action( 'foundationPress_layout_end' ); ?>
</div>
</div>
<?php wp_footer(); ?>
<?php do_action('foundationPress_before_closing_body'); ?>
<?php do_action( 'foundationPress_before_closing_body' ); ?>
</body>
</html>
Loading

0 comments on commit e0fcbd6

Please sign in to comment.