/** * 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']; }
/** * 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); } }
/** * 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)); }
/** * 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']); }