From f9ee36f7fd27c4856c8ad2fb490af08dc14befaa Mon Sep 17 00:00:00 2001 From: John Bintz Date: Fri, 4 Dec 2009 07:02:08 -0500 Subject: [PATCH] generate from id --- classes/backends/ComicPressBackendURL.inc | 19 ++++++++++++++ test/backends/ComicPressBackendURLTest.php | 29 ++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/classes/backends/ComicPressBackendURL.inc b/classes/backends/ComicPressBackendURL.inc index d0cc56e..97e05cd 100644 --- a/classes/backends/ComicPressBackendURL.inc +++ b/classes/backends/ComicPressBackendURL.inc @@ -67,4 +67,23 @@ class ComicPressBackendURL extends ComicPressBackend { return false; } + + function generate_from_id($id) { + if (preg_match('#^url-([0-9]+)-(.+)$#', $id, $matches) > 0) { + list($all, $post_id, $key) = $matches; + $post = get_post($post_id); + if (!empty($post)) { + $meta = get_post_meta($post_id, 'backend_url_image_urls', true); + if (is_array($meta)) { + if (isset($meta[$key])) { + $backend = new ComicPressBackendURL(); + $backend->id = $id; + $backend->urls_by_type = $meta[$key]; + return $backend; + } + } + } + } + return false; + } } diff --git a/test/backends/ComicPressBackendURLTest.php b/test/backends/ComicPressBackendURLTest.php index 137fcbb..c2f8b2e 100644 --- a/test/backends/ComicPressBackendURLTest.php +++ b/test/backends/ComicPressBackendURLTest.php @@ -87,4 +87,33 @@ class ComicPressBackendUrlTest extends PHPUnit_Framework_TestCase { function testGenerateID($post_id, $key, $expected_result) { $this->assertEquals($expected_result, ComicPressBackendURL::generate_id($post_id, $key)); } + + function providerTestGenerateFromID() { + $valid_backend = new ComicPressBackendURL(); + $valid_backend->id = 'url-1-12345'; + $valid_backend->urls_by_type = array( + 'comic' => 'comic', + 'rss' => 'rss' + ); + + return array( + array('', false), + array('url-', false), + array('url-1', false), + array('url-2-12345', false), + array('url-1-123456', false), + array('url-1-12345', $valid_backend) + ); + } + + /** + * @dataProvider providerTestGenerateFromID + */ + function testGenerateFromID($id, $expected_result) { + wp_insert_post((object)array('ID' => 1)); + + update_post_meta(1, 'backend_url_image_urls', array('12345' => array('comic' => 'comic', 'rss' => 'rss'))); + + $this->assertEquals($expected_result, ComicPressBackendURL::generate_from_id($id)); + } }