You are here

function CourseContextTestCase::testMultiContext in Course 6

Same name and namespace in other branches
  1. 7.2 tests/CourseContextTestCase.test \CourseContextTestCase::testMultiContext()
  2. 7 tests/CourseContextTestCase.test \CourseContextTestCase::testMultiContext()

Test objects that belong to multiple courses.

File

tests/CourseContextTestCase.test, line 41

Class

CourseContextTestCase
Tests for Course enrollment

Code

function testMultiContext() {
  $courseNode1 = $this
    ->createCourseNode();
  $courseNode2 = $this
    ->createCourseNode();

  // Create an object and give it an instance.
  $co1 = $this
    ->createCourseObject($courseNode1);
  $co1
    ->setInstanceId(1234)
    ->save();
  $co2 = $this
    ->createCourseObject($courseNode2);
  $co2
    ->setInstanceId(1234)
    ->save();

  // Now we have 2 course objects with the same instance but in different courses.
  // Simulate us taking one of the objects, and switch back and forth between courses.
  $co1
    ->takeCourseObject();
  $foundCourseNode1 = course_determine_context('course_test', 'course_test_object', 1234);
  $this
    ->assertEqual($courseNode1->nid, $foundCourseNode1->nid, 'Found the right course context, pass 1.');

  // Taking with context set.
  $co2
    ->takeCourseObject();
  $foundCourseNode2 = course_determine_context('course_test', 'course_test_object', 1234);
  $this
    ->assertEqual($courseNode2->nid, $foundCourseNode2->nid, 'Found the right course context, pass 2.');

  // Back to original context.
  $co1
    ->takeCourseObject();
  $foundCourseNode1 = course_determine_context('course_test', 'course_test_object', 1234);
  $this
    ->assertEqual($courseNode1->nid, $foundCourseNode1->nid, 'Found the right course context, pass 3.');
}