Esempio n. 1
0
 /**
  * Test LRS
  */
 public function testLRS()
 {
     $lrs = new Lrs();
     // Test title required.
     $values = array('title' => '', 'description' => \app\locker\helpers\Helpers::getRandomValue(), 'api' => array('basic_key' => \app\locker\helpers\Helpers::getRandomValue(), 'basic_secret' => \app\locker\helpers\Helpers::getRandomValue()));
     $validator = $lrs->validate($values);
     $this->assertTrue($validator->fails());
     $this->assertFalse($validator->passes());
     $values['title'] = \app\locker\helpers\Helpers::getRandomValue();
     $validator = $lrs->validate($values);
     $this->assertTrue($validator->passes());
     // Validate auth_service
     $values['auth_service_url'] = 'http://' . \app\locker\helpers\Helpers::getRandomValue() . '.adurolms.com';
     $validator = $lrs->validate($values);
     $this->assertTrue($validator->passes());
     // Add new lrs
     $lrs->title = $values['title'];
     $lrs->description = $values['description'];
     $lrs->api = $values['api'];
     $result = $lrs->save();
     $this->assertTrue($result);
     // Load lrs from db
     $lrs_id = $lrs->_id;
     $db_lrs = Lrs::find($lrs_id);
     $this->assertEquals($db_lrs->_id, $lrs->_id);
     // Edit lrs
     $title = \app\locker\helpers\Helpers::getRandomValue();
     $db_lrs->title = $title;
     $db_lrs->save();
     $this->assertEquals($db_lrs->title, $title);
     // Delete lrs
     $db_lrs->delete();
     $this->assertEquals(Lrs::find($lrs_id), NULL, 'delete lrs');
 }
Esempio n. 2
0
 /**
  * lrs/{id}/reporting/create  
  * 
  * This test case create new reporting and run report
  * 
  * It is ensure reporting work correctly.
  * */
 public function testRouterReportCreate()
 {
     for ($i = 0; $i < 7; $i++) {
         $vs = $this->defaultStatment();
         $this->statements[] = $this->createStatement($vs, $this->lrs);
     }
     $data = array('description' => \app\locker\helpers\Helpers::getRandomValue(), 'name' => '', 'lrs' => $this->lrs->_id, 'query' => array('statement.actor.mbox' => array("mailto:duy.nguyen@go1.com.au"), 'statement.verb.id' => array("http://adlnet.gov/expapi/verbs/experienced")));
     //lrs input validation
     $rules['name'] = 'required|alpha_spaces';
     $rules['description'] = 'alpha_spaces';
     $validator = Validator::make($data, $rules);
     $this->assertTrue($validator->fails());
     $data['name'] = 'reportabcd';
     $data['description'] = 'reportabcd description';
     $validator = Validator::make($data, $rules);
     $this->assertTrue($validator->passes());
     // create report.
     $report = new Report();
     $report->lrs = $data['lrs'];
     $report->query = $data['query'];
     $report->name = $data['name'];
     $report->description = $data['description'];
     $save = $report->save();
     $this->assertTrue($save);
     // Ensure report show in reporting page.
     $crawler = $this->client->request('GET', "/lrs/{$this->lrs->_id}/reporting");
     $this->assertGreaterThan(0, $crawler->filter('html:contains("reportabcd")')->count());
     $this->assertGreaterThan(0, $crawler->filter('html:contains("reportabcd description")')->count());
     $crawler = $this->client->request('GET', "/lrs/{$this->lrs->_id}/reporting/show/{$report->_id}");
     $this->assertGreaterThan(0, $crawler->filter('html:contains("Number of statements")')->count());
     $this->assertGreaterThan(0, $crawler->filter('html:contains("7")')->count());
     // Delete report by router.
     $crawler = $this->client->request('DELETE', "/lrs/{$this->lrs->_id}/reporting/delete/{$report->_id}");
     $this->assertEquals(Report::find($report->_id), NULL);
 }
Esempio n. 3
0
 /**
  * Test Activity
  */
 public function testActivityCRUD()
 {
     $activity = new Activity();
     $activity->_id = \app\locker\helpers\Helpers::getRandomValue();
     $activity->definition = array('type' => \app\locker\helpers\Helpers::getRandomValue(), 'name' => array('en-US' => \app\locker\helpers\Helpers::getRandomValue()), 'description' => array('en-US' => \app\locker\helpers\Helpers::getRandomValue()));
     $result = $activity->save();
     $this->assertTrue($result);
     // Load activity from db
     $aid = $activity->_id;
     $db_activity = Activity::find($aid);
     $this->assertEquals($db_activity->_id, $activity->_id);
     // Delete activity
     $db_activity->delete();
     $this->assertEquals(Activity::find($aid), NULL);
 }
 public function create($input)
 {
     $user = \Auth::user();
     $app = new OAuthApp();
     $app->name = $input['name'];
     $app->description = $input['description'];
     $app->website = $input['website'];
     $app->callbackurl = $input['callback'];
     $app->rules = $input['rules'];
     $app->client_id = \app\locker\helpers\Helpers::getRandomValue();
     $app->secret = \app\locker\helpers\Helpers::getRandomValue();
     $app->organisation = array('name' => $input['organisation'] ? $input['organisation'] : '', 'website' => $input['org_url'] ? $input['org_url'] : '');
     $app->owner = array('_id' => $user->_id, 'email' => $user->email, 'name' => $user->name, 'role' => $user->role);
     $result = $app->save() ? true : false;
     $this->oauthDetails($app->_id, $input['name'], $app->client_id, $app->secret, 1, $input['callback']);
     return $result;
 }
 /**
  * Build the required return array for a single or multiple statements.
  *
  * @param array $statements  Statements to return
  * @param array $params      Parameters used to filter statements
  *
  * @return response
  *
  **/
 public function returnArray($statements = array(), $params = array(), $debug = array())
 {
     $array = array('X-Experience-API-Version' => \Config::get('xapi.using_version'));
     //replace replace &46; in keys with .
     //see http://docs.learninglocker.net/docs/statements#quirks for more info
     if (!empty($statements)) {
         foreach ($statements as &$s) {
             $s = \app\locker\helpers\Helpers::replaceHtmlEntity($s['statement']);
         }
     }
     $array['statements'] = $statements;
     //return total available statements
     $array['total'] = $this->statement->count($this->lrs->_id, $this->params);
     //set more link. 100 is our default limit. This should be a value that admins can
     //set, not hardcoded.
     if (isset($this->params['offset'])) {
         if (isset($this->params['limit'])) {
             $offset = $this->params['offset'] + $this->params['limit'];
         } else {
             $offset = $this->params['offset'] + 100;
         }
     } else {
         if (isset($this->params['limit'])) {
             $offset = $this->params['limit'];
         } else {
             $offset = 100;
         }
     }
     //set the more url
     if ($array['total'] > $offset) {
         //$url = 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . "{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
         $url = "{$_SERVER['REQUEST_URI']}";
         if (isset($this->params['offset'])) {
             if (strpos($url, '?offset=' . $this->params['offset']) !== false) {
                 $url = str_replace('?offset=' . $this->params['offset'], '?offset=' . $offset, $url);
             } elseif (strpos($url, '&offset=' . $this->params['offset']) !== false) {
                 $url = str_replace('&offset=' . $this->params['offset'], '&offset=' . $offset, $url);
             } else {
                 $url = $url . '&offset=' . $offset;
             }
         } else {
             if (sizeof($this->params) > 0) {
                 $url = $url . '&offset=' . $offset;
             } else {
                 $url = $url . '?offset=' . $offset;
             }
         }
         $array['more'] = $url;
     } else {
         $array['more'] = '';
     }
     $response = \Response::make($array, 200);
     //set consistent through data
     $current_date = \DateTime::createFromFormat('U.u', microtime(true));
     $current_date->setTimezone(new \DateTimeZone(\Config::get('app.timezone')));
     $current_date = $current_date->format('Y-m-d\\TH:i:s.uP');
     $response->headers->set('X-Experience-API-Consistent-Through', $current_date);
     return $response;
 }
 private function setAvatar($mbox)
 {
     if (isset($mbox)) {
         $avatar = \app\locker\helpers\Helpers::getGravatar(substr($mbox, 7), '20');
         $avatar = '<img src="' . $avatar . '" alt="User gravatar" />';
     } else {
         $avatar = '';
     }
     return $avatar;
 }
Esempio n. 7
0
 protected function dummyEmail()
 {
     return helpers::getRandomValue() . '@go1.com.au';
 }
<?php

//grab gravatar if available
$grav_url = \app\locker\helpers\Helpers::getGravatar($user->email, '50');
?>
<div class='user-list clearfix'>
  @if($user->verified == 'yes')
    <span class="label label-success pull-right">
      {{ Lang::get('users.verified') }} <i class="icon icon-check"></i>
    </span>
  @else
    <span class="label label-default pull-right">
      {{ Lang::get('users.unverified') }}
    </span>
  @endif
  <div class="user-avatar">
    <img src="{{ $grav_url }}" alt="Avatar" class="pull-left avatar img-circle" />
    @if ( Auth::user()->_id != $user['_id'] )
      @include('partials.users.forms.delete', array('user' => $user))
    @endif
    @if( $user->verified != 'yes')
      @include('partials.site.forms.verifyUser', array('user' => $user))
    @endif
  </div>
  <div class="user-details">
    <div class="user-details-item">
      {{ $user->name }}
    </div>
    <div class="user-details-item">
      {{ $user->email }}
    </div>
Esempio n. 9
0
 /**
  * Generate a new key and secret for basic auth
  *
  **/
 public function editCredentials($id)
 {
     $lrs = $this->lrs->find($id);
     $lrs->api = array('basic_key' => \app\locker\helpers\Helpers::getRandomValue(), 'basic_secret' => \app\locker\helpers\Helpers::getRandomValue());
     if ($lrs->save()) {
         $message_type = 'success';
         $message = Lang::get('update_key');
     } else {
         $message_type = 'error';
         $message = Lang::get('update_key_error');
     }
     return Redirect::back()->with($message_type, $message);
 }
Esempio n. 10
0
$stored = new Carbon\Carbon($statement['stored']);
?>

<div class="row">
  <div class="col-xs-12 col-sm-12 col-lg-12">
    <div class="statement-row clearfix">

      <span onclick="$('.state-{{ $statement['id'] }}').toggle();"><i class="icon icon-cog lightgrey pull-left"></i></span>

      <span class="pull-left statement-avatar">
          <img src="{{ $avatar }}" alt='avatar' class="img-circle" />
      </span> 
        
      {{ $name }}
      
      <i>{{ $verb }}</i>
        
      <a href="{{ $object_id }}">{{{ $object }}}</a>

      <small>| {{ $stored->diffForHumans() }} ({{ $stored->toDayDateTimeString() }})</small>

      <div class="full-statement state-{{ $statement['id'] }}" style="display:none;">
        <?php 
$statement = \app\locker\helpers\Helpers::replaceHtmlEntity($json);
?>
        <pre>{{{ json_encode($statement,JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) }}}</pre>
      </div>

    </div>
  </div>
</div>
 /**
  *
  * Mongo doesn't allow full stops (.) in keys as it is reserved, so, 
  * we replace with &46; where required. This will most likely only
  * happen in extensions.
  *
  * @param array $statement A full statement array
  *
  * @return array $statement
  *
  */
 private function replaceFullStop($statement)
 {
     $statement = \app\locker\helpers\Helpers::replaceFullStop($statement);
     return $statement;
 }