add import processing

This commit is contained in:
John Bintz 2009-10-23 07:04:53 -04:00
parent 13d5e3b670
commit 8e5f1ce4bd
2 changed files with 74 additions and 0 deletions

View File

@ -38,6 +38,8 @@ class WhatDidTheySayAdmin {
var $is_ajax = false;
var $_import_chunk_size = 50;
/**
* Initialize the admin interface.
* @param WhatDidTheySay $what_did_they_say The WhatDidTheySay object to use for all transcript transactions.
@ -549,6 +551,28 @@ class WhatDidTheySayAdmin {
return $ok;
}
function import_transcripts($language_code) {
$modified = false;
$posts = get_posts(array('posts_per_page' => $this->_import_chunk_size, 'meta_key' => 'transcript'));
if (!empty($posts)) {
$modified = 0;
foreach ($posts as $post) {
if ($transcript = get_post_meta($post->ID, 'transcript', true)) {
$approved_transcript_manager = new WDTSApprovedTranscript($post->ID);
$approved_transcript_manager->save_transcript(array(
'language' => $language_code,
'transcript' => $transcript
));
delete_post_meta($post->ID, 'transcript');
$modified++;
}
}
if ($modified == 0) { $modified = false; }
}
return $modified;
}
/** Handle data updates **/

View File

@ -2,7 +2,9 @@
require_once('PHPUnit/Framework.php');
require_once('MockPress/mockpress.php');
require_once(dirname(__FILE__) . '/../classes/WhatDidTheySayAdmin.inc');
require_once(dirname(__FILE__) . '/../classes/WDTSTranscriptClasses.inc');
class WhatDidTheySayAdminTest extends PHPUnit_Framework_TestCase {
function setUp() {
@ -78,6 +80,54 @@ class WhatDidTheySayAdminTest extends PHPUnit_Framework_TestCase {
'approve_transcriptions' => true
), get_usermeta(1, 'transcript_capabilities'));
}
/**
* Integration.
*/
function testPerformImport() {
$admin = new WhatDidTheySayAdmin();
$admin->_import_chunk_size = 1;
wp_insert_user(array('ID' => 1));
wp_set_current_user(1);
_set_user_capabilities('approve_transcriptions');
for ($i = 1; $i <= 2; ++$i) {
wp_insert_post(array('ID' => $i));
update_post_meta($i, "transcript", "this is my transcript");
}
_set_up_get_posts_response(array(
'posts_per_page' => 1,
'meta_key' => 'transcript'
), array(
get_post(1)
));
$this->assertEquals(1, $admin->import_transcripts('en'));
$this->assertEquals('', get_post_meta(1, "transcript", true));
$this->assertEquals('this is my transcript', get_post_meta(2, "transcript", true));
$this->assertEquals(array(
array(
'language' => 'en',
'transcript' => 'this is my transcript',
'user_id' => 1,
'key' => 0
)
), get_post_meta(1, 'approved_transcripts', true));
delete_post_meta(2, 'transcript');
_set_up_get_posts_response(array(
'posts_per_page' => 1,
'meta_key' => 'transcript'
), array());
$this->assertEquals(false, $admin->import_transcripts('en'));
}
}
?>