course_uc.test in Course 6
File
modules/course_uc/course_uc.test
View source
<?php
require_once drupal_get_path('module', 'course') . '/tests/CourseTestCase.test';
class CourseObjectUbercartTestCase extends CourseTestCase {
public static function getInfo() {
return array(
'name' => 'Course Ubercart',
'description' => 'Ensure that the Ubercart integration functions properly.',
'group' => 'Course',
);
}
public function getModules() {
$modules = parent::getModules();
$modules[] = 'uc_store';
$modules[] = 'uc_order';
$modules[] = 'uc_product';
$modules[] = 'ca';
$modules[] = 'course_uc';
return $modules;
}
function setUp() {
parent::setUp();
variable_set('signup_node_default_state_course_test', 'enabled_on');
}
function testUbercartEnrollment() {
global $user;
module_load_include('inc', 'uc_product', 'uc_product.admin');
$form = array();
$form_state = array();
$form_state['values']['name'] = 'course_test';
$form_state['values']['description'] = 'course_test';
$form_state['values']['pcid'] = 'course_test';
$form['pcid']['#type'] = '';
uc_product_class_form_submit($form, $form_state);
$courseNode = $this
->createCourseNode();
$courseNode->sell_price = 5;
node_save($courseNode);
$result = course_enrol_access($courseNode);
$this
->assertFalse($result['success'], 'User prevented from enrolling into paid course.');
$result = course_enrol_access($courseNode);
$this
->assertFalse($result['success'], 'User prevented from taking paid course.');
$order = uc_order_new($user->uid);
uc_order_product_save($order->order_id, $courseNode);
uc_order_update_status($order->order_id, 'pending');
uc_order_update_status($order->order_id, 'completed');
$result = course_enrol_access($courseNode, $user, TRUE);
$this
->assertTrue($result['success'], 'User granted access to enroll into course.');
$result = course_take_course_access($courseNode);
$this
->assertTrue($result['success'], 'User granted access to take course.');
}
}