Exemplo n.º 1
0
 /**
  * Set class properties
  *
  * @since 0.3.0
  *
  * @access private
  *
  * @param $id
  */
 private function set_up_session($id)
 {
     if (is_null($id) || !\ingot\testing\crud\session::valid(\ingot\testing\crud\session::read($id))) {
         $this->ID = \ingot\testing\crud\session::create(['uID' => get_current_user_id(), 'IP' => ingot_get_ip()], true);
     } else {
         $this->ID = $id;
     }
     $this->session = \ingot\testing\crud\session::read($this->ID);
     $this->ID = $this->session['ID'];
     $this->ingot_id = $this->session['ingot_ID'];
 }
Exemplo n.º 2
0
 /**
  * Check if session has been used
  *
  * @since 0.3.0
  *
  * @param \WP_REST_Request $request Full data about the request.
  *
  * @return \WP_Error|\WP_REST_Response
  */
 public function session($request)
 {
     $session = $this->get_session_by_url_params($request);
     if (ingot_is_no_testing_mode()) {
         $data['ingot_ID'] = $session['ingot_ID'];
         $data['tests'] = [];
         $data['session_ID'] = $session['ID'];
         return $data;
     }
     $tests = [];
     if (!is_array($session)) {
         return $session;
     } else {
         if (\ingot\testing\crud\session::is_used($session['ID'])) {
             $new_session_args = [];
             if (0 != $request->get_param('ingot_id')) {
                 $new_session_args['ingot_ID'] = $request->get_param('ingot_id');
             } elseif (0 < absint($session['ingot_ID'])) {
                 $new_session_args['ingot_ID'] = $session['ingot_ID'];
             }
             if (0 != get_current_user_id()) {
                 $new_session_args['uID'] = get_current_user_id();
             }
             $data['session_ID'] = \ingot\testing\crud\session::create($new_session_args, true);
             if (is_numeric($data['session_ID'])) {
                 $session = \ingot\testing\crud\session::read((int) $data['session_ID']);
                 if (!empty($request->get_param('test_ids'))) {
                     foreach ($request->get_param('test_ids') as $variant_id) {
                         $html = '';
                         if (is_array($group = group::get_by_variant_id($variant_id))) {
                             $html = ingot_click_test($group);
                         }
                         $tests[] = ['html' => $html, 'ID' => $variant_id];
                     }
                 }
             }
         } else {
             \ingot\testing\crud\session::mark_used($session['ID']);
             $data['session_ID'] = $session['ID'];
         }
         $data['ingot_ID'] = $session['ingot_ID'];
         $data['tests'] = $tests;
         return rest_ensure_response($data);
     }
 }
Exemplo n.º 3
0
 /**
  * Test item exists method
  *
  * @since 1.1.0
  *
  * @group session
  * @group session_crud
  * @group crud
  *
  * @covers  \ingot\testing\crud\group::session()
  */
 public function testExists()
 {
     $id = \ingot\testing\crud\session::create([], true);
     $this->assertTrue(is_numeric($id));
     $this->assertTrue(\ingot\testing\crud\session::exists($id));
     $this->assertFalse(\ingot\testing\crud\session::exists(99999));
     \ingot\testing\crud\session::delete($id);
     $this->assertFalse(\ingot\testing\crud\session::exists($id));
 }
Exemplo n.º 4
0
 /**
  * Test that we can mark a session as used
  *
  * @since 0.3.0
  *
  * @group session
  * @group crud
  *
  * @covers \ingot\testing\crud\session::mark_used()
  */
 public function testMarkUsed()
 {
     $id = \ingot\testing\crud\session::create(array());
     $this->assertTrue(is_numeric($id));
     \ingot\testing\crud\session::mark_used($id);
     $session = \ingot\testing\crud\session::read($id);
     $this->assertSame('1', $session['used']);
 }