Program: 69467
Project: 69467
Buggy source:
/** 
 * An author upload a SCORM resource, create a course and use the SCORM within. It publish the course, add a participant to the course. The participant log in, select the course above, run the SCORM and finish it.<br> At the end, the author go to the assessment tool and chec that the participant has successfully passed the test.
 * @param authorLoginPage
 * @param ryomouBrowser
 * @throws IOException
 * @throws URISyntaxException
 */
@Test @RunAsClient public void scormCourseWithAssessment(@InitialPage LoginPage authorLoginPage,@Drone @User WebDriver ryomouBrowser) throws IOException, URISyntaxException {
  screenshotTestRule.setBrowsers(browser,ryomouBrowser);
  Assume.assumeTrue(browser instanceof FirefoxDriver);
  UserVO author=new UserRestClient(deploymentUrl).createAuthor();
  authorLoginPage.loginAs(author.getLogin(),author.getPassword());
  UserVO ryomou=new UserRestClient(deploymentUrl).createRandomUser("String_Node_Str");
  String scormTitle="String_Node_Str" + UUID.randomUUID();
  URL scormUrl=JunitTestHelper.class.getResource("String_Node_Str");
  File scormFile=new File(scormUrl.toURI());
  navBar.openAuthoringEnvironment().uploadResource(scormTitle,scormFile);
  String courseTitle="String_Node_Str" + UUID.randomUUID();
  navBar.openAuthoringEnvironment().createCourse(courseTitle).clickToolbarBack();
  String scormNodeTitle="String_Node_Str";
  CourseEditorPageFragment courseEditor=CoursePageFragment.getCourse(browser).edit();
  courseEditor.createNode("String_Node_Str").nodeTitle(scormNodeTitle).selectTabLearnContent().chooseScorm(scormTitle);
  courseEditor.autoPublish().accessConfiguration().setUserAccess(UserAccess.registred).clickToolbarBack();
  CoursePageFragment courseRuntime=new CoursePageFragment(browser);
  courseRuntime.members().addMember().searchMember(ryomou,true).next().next().next().finish();
  LoginPage ryomouLoginPage=LoginPage.getLoginPage(ryomouBrowser,deploymentUrl);
  ryomouLoginPage.loginAs(ryomou.getLogin(),ryomou.getPassword()).resume();
  NavigationPage ryomouNavBar=new NavigationPage(ryomouBrowser);
  ryomouNavBar.openMyCourses().select(courseTitle);
  CoursePageFragment ryomouCourse=new CoursePageFragment(ryomouBrowser);
  ryomouCourse.clickTree().selectWithTitle(scormNodeTitle);
  By scormH2By=By.cssSelector("String_Node_Str");
  WebElement scormH2=ryomouBrowser.findElement(scormH2By);
  Assert.assertEquals(scormNodeTitle,scormH2.getText().trim());
  ScormPage scorm=ScormPage.getScormPage(ryomouBrowser);
  scorm.start().passVerySimpleScorm().back();
  WebElement scormH2Back=ryomouBrowser.findElement(scormH2By);
  Assert.assertEquals(scormNodeTitle,scormH2Back.getText().trim());
  UserToolsPage roymouUserTools=new UserToolsPage(ryomouBrowser);
  roymouUserTools.logout();
  navBar.openMyCourses().select(courseTitle);
  AssessmentToolPage assessmentTool=new CoursePageFragment(browser).assessmentTool();
  assessmentTool.users().assertOnUsers(ryomou).selectUser(ryomou).assertPassed(ryomou);
}

Fixed version (ground truth):
/** 
 * An author upload a SCORM resource, create a course and use the SCORM within. It publish the course, add a participant to the course. The participant log in, select the course above, run the SCORM and finish it.<br> At the end, the author go to the assessment tool and chec that the participant has successfully passed the test.
 * @param authorLoginPage
 * @param ryomouBrowser
 * @throws IOException
 * @throws URISyntaxException
 */
@Test @RunAsClient public void scormCourseWithAssessment(@InitialPage LoginPage authorLoginPage,@Drone @User WebDriver ryomouBrowser) throws IOException, URISyntaxException {
  Assume.assumeTrue(browser instanceof FirefoxDriver);
  UserVO author=new UserRestClient(deploymentUrl).createAuthor();
  authorLoginPage.loginAs(author.getLogin(),author.getPassword());
  UserVO ryomou=new UserRestClient(deploymentUrl).createRandomUser("String_Node_Str");
  String scormTitle="String_Node_Str" + UUID.randomUUID();
  URL scormUrl=JunitTestHelper.class.getResource("String_Node_Str");
  File scormFile=new File(scormUrl.toURI());
  navBar.openAuthoringEnvironment().uploadResource(scormTitle,scormFile);
  String courseTitle="String_Node_Str" + UUID.randomUUID();
  navBar.openAuthoringEnvironment().createCourse(courseTitle).clickToolbarBack();
  String scormNodeTitle="String_Node_Str";
  CourseEditorPageFragment courseEditor=CoursePageFragment.getCourse(browser).edit();
  courseEditor.createNode("String_Node_Str").nodeTitle(scormNodeTitle).selectTabLearnContent().chooseScorm(scormTitle);
  courseEditor.autoPublish().accessConfiguration().setUserAccess(UserAccess.registred).clickToolbarBack();
  CoursePageFragment courseRuntime=new CoursePageFragment(browser);
  courseRuntime.members().addMember().searchMember(ryomou,true).next().next().next().finish();
  LoginPage ryomouLoginPage=LoginPage.getLoginPage(ryomouBrowser,deploymentUrl);
  ryomouLoginPage.loginAs(ryomou.getLogin(),ryomou.getPassword()).resume();
  NavigationPage ryomouNavBar=new NavigationPage(ryomouBrowser);
  ryomouNavBar.openMyCourses().select(courseTitle);
  CoursePageFragment ryomouCourse=new CoursePageFragment(ryomouBrowser);
  ryomouCourse.clickTree().selectWithTitle(scormNodeTitle);
  By scormH2By=By.cssSelector("String_Node_Str");
  WebElement scormH2=ryomouBrowser.findElement(scormH2By);
  Assert.assertEquals(scormNodeTitle,scormH2.getText().trim());
  ScormPage scorm=ScormPage.getScormPage(ryomouBrowser);
  scorm.start().passVerySimpleScorm().back();
  WebElement scormH2Back=ryomouBrowser.findElement(scormH2By);
  Assert.assertEquals(scormNodeTitle,scormH2Back.getText().trim());
  UserToolsPage roymouUserTools=new UserToolsPage(ryomouBrowser);
  roymouUserTools.logout();
  navBar.openMyCourses().select(courseTitle);
  AssessmentToolPage assessmentTool=new CoursePageFragment(browser).assessmentTool();
  assessmentTool.users().assertOnUsers(ryomou).selectUser(ryomou).assertPassed(ryomou);
}