MDL-49412 report_usersessions: Fix behat failures
authorAnkit Agarwal <ankit@moodle.com>
Tue, 31 Mar 2015 05:18:23 +0000 (10:48 +0530)
committerAdrian Greeve <adrian@moodle.com>
Fri, 10 Apr 2015 09:18:22 +0000 (17:18 +0800)
Part of MDL-45774.

report/usersessions/lib.php
report/usersessions/tests/behat/usersessions_report.feature

index 04c2135..8a29d73 100644 (file)
@@ -50,3 +50,34 @@ function report_usersessions_extend_navigation_user($navigation, $user, $course)
             new moodle_url('/report/usersessions/user.php'), $navigation::TYPE_SETTING);
     }
 }
+
+/**
+ * Add nodes to myprofile page.
+ *
+ * @param \core_user\output\myprofile\tree $tree Tree object
+ * @param stdClass $user user object
+ * @param bool $iscurrentuser
+ * @param stdClass $course Course object
+ *
+ * @return bool
+ */
+function report_usersessions_myprofile_navigation(core_user\output\myprofile\tree $tree, $user, $iscurrentuser, $course) {
+    global $USER;
+
+    if (isguestuser() or !isloggedin()) {
+        return;
+    }
+
+    if (\core\session\manager::is_loggedinas() or $USER->id != $user->id) {
+        // No peeking at somebody else's sessions!
+        return;
+    }
+
+    $context = context_user::instance($USER->id);
+    if (has_capability('report/usersessions:manageownsessions', $context)) {
+        $node = new core_user\output\myprofile\node('reports', 'usersessions',
+                get_string('navigationlink', 'report_usersessions'), null, new moodle_url('/report/usersessions/user.php'));
+        $tree->add_node($node);
+    }
+    return true;
+}
index 0106772..0b0a740 100644 (file)
@@ -4,7 +4,9 @@ Feature: In a report, admin can see current sessions
   As a admin
   I need to view usersessions report and see if the current session is listed
 
+  @javascript
   Scenario: Check usersessions report shows current session
     Given I log in as "admin"
-    When I navigate to "Browser sessions" node in "My profile settings > Activity reports"
+    And I follow "My profile" in the user menu
+    When I follow "Browser sessions"
     Then I should see "Current session"