npr/nprapi-wordpress

When site has no GMT offset saved, the expiry datetime causes problems

benlk opened this issue · 3 comments

benlk commented

When the 'gmt_offset' value is a number (which is pretty much everywhen), the DateTimeZone constructor complains that the number is not a valid timezone.

return date_add( date_create( $future, new DateTimeZone( $timezone ) ), new DateInterval( 'P7D' ) );
} else {
// return DateTime for the expiry date
return date_create( $iso_8601, new DateTimeZone( $timezone ) );

PHP Fatal Error: Uncaught exception 'Exception' with message 'DateTimeZone::__construct(): Unknown or bad timezone (-4)' in /plugins/npr-story-api/psuh_story.php:676'

benlk commented

Timezones are not a specific GMT offset; we need a GMT offset for this. A better approach is described in #53 that makes use of WordPress's tools for converting timezones to GMT offsets.

TODO: Up to 2 hours for remaining testing for #53 .

benlk commented

Automated tests for #53 pass.

Human-run tests for #53 should perform the following tasks:

  1. Activate the plugin
  2. Configure the plugin with test API credentials
  3. Create a new post.
    1. Does the NPR Story API meta box appear on the page?
    2. Are there no errors in the server console?
    3. Change the time zone in Dashboard > Settings > General to a new time zone. Repeat step 3 until satisfied.
  4. Push a post to the API.
  5. Pull a post from the API.