0byt3m1n1
Path:
/
data
/
applications
/
aps
/
tikiwiki
/
7.0-0
/
standard
/
htdocs
/
tiki_tests
/
[
Home
]
File: tiki-tests_edit.php
<?php // (c) Copyright 2002-2011 by authors of the Tiki Wiki CMS Groupware Project // // All Rights Reserved. See copyright.txt for details and a complete list of authors. // Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. // $Id: tiki-tests_edit.php 33195 2011-03-02 17:43:40Z changi67 $ require_once('../tiki-setup.php'); require_once('lib/diff/difflib.php'); if ($prefs['feature_tikitests'] != 'y') { $smarty->assign('msg', tra('This feature is disabled').': feature_tikitests'); $smarty->display('error.tpl'); die; } if ($tiki_p_admin_tikitests != 'y' and $tiki_p_edit_tikitests != 'y') { $smarty->assign('msg', tra('You do not have permission to do that')); $smarty->display('error.tpl'); die; } $smarty->assign("tidy",extension_loaded("tidy")); $smarty->assign("http",extension_loaded("http")); $smarty->assign("curl",extension_loaded("curl")); function get_from_dom($element) { if ($element === NULL) return NULL; $es = $element->getElementsByTagName("*"); $a = array(); foreach($es as $e) { $a[$e->tagName] = $e->nodeValue; } return $a; } function get_url($url, $use_tidy = TRUE) { global $smarty, $cookies; $result = array(); $get = get_from_dom($url->getElementsByTagName('get')->item(0)); $post = get_from_dom($url->getElementsByTagName('post')->item(0)); $xpath = $url->getElementsByTagName('xpath')->item(0)->textContent; $data = $url->getElementsByTagName('data')->item(0)->textContent; $urlstr = $url->getAttribute("src"); $referer = $url->getAttribute("referer"); $result['data'] = $data; if (extension_loaded("tidy")) { $data = tidy_parse_string($data,array(),'utf8'); tidy_diagnose($data); if ($use_tidy) { $result['ref_error_count'] = tidy_error_count($data); $result['ref_error_msg'] = tidy_get_error_buffer($data); } } else { $result['ref_error_msg'] = tra("Tidy Extension not present"); } $result['url'] = $urlstr; $result['xpath'] = $xpath; $result['method'] = $url->getAttribute("method"); $result['post'] = $post; $result['get'] = $get; $result['referer'] = $referer; return $result; } function save_test($urls,$file,$options) { $dom = new DOMDocument('1.0', 'UTF-8'); $element_test = $dom->createElement('test'); $element_test->setAttribute('id','test'); $dom->appendChild($element_test); $opt = $dom->createElement('options'); $element_test->appendChild($opt); foreach($options as $o => $v) { $opt->appendChild($dom->createElement($o,$v? 'y' : 'n')); } foreach($urls as $url) { $u = $dom->createElement('url'); $u->setAttribute('src',$url['url']); $u->setAttribute('method',$url['method']); $u->setAttribute('referer',$url['referer']); $get = $dom->createElement('get'); if (is_array($url['get'])) { foreach($url['get'] as $var => $value) { $v = $dom->createElement($var,$value); $get->appendChild($v); } $u->appendChild($get); } if (is_array($url['post'])) { $post = $dom->createElement('post'); foreach($url['post'] as $var => $value) { $v = $dom->createElement($var,$value); $post->appendChild($v); } $u->appendChild($post); } if (trim($url['xpath']) != '') { $xpath = $dom->createElement('xpath',$url['xpath']); $u->appendChild($xpath); } $data = $dom->createElement('data'); $cdata = $dom->createCDATASection($url['data']); $data->appendChild($cdata); $u->appendChild($data); $element_test->appendChild($u); } $dom->formatOutput = true; $fd = fopen($file,"w"); fwrite($fd,$dom->saveXML()); fclose($fd); } if (isset($_REQUEST['filename'])) { $_REQUEST['filename'] = str_replace("<x>","",$_REQUEST['filename']); } $xml = file_get_contents("tiki_tests/tests/".basename($_REQUEST['filename'])); if ($xml == '' or $xml == false) { $smarty->assign('msg', tra("The TikiTests Replay File is Empty")); $smarty->display("error.tpl"); die(); } else { $dom = DOMDocument::loadXML($xml); $element_test = $dom->getElementsByTagName('test')->item(0); if ($element_test == NULL) { $smarty->assign('msg', tra("The TikiTests Replay File has an error")); $smarty->display("error.tpl"); die(); } } $result = array(); $urls = $dom->getElementsByTagName('url'); $options = array(); foreach($dom->getElementsByTagName('options') as $o) { $es = $o->getElementsByTagName("*"); foreach($es as $e) { $options[$e->tagName] = $e->nodeValue ; } } $edit = FALSE; if (isset($_REQUEST['action'])) { if (strtolower($_REQUEST['action']) == strtolower(tra("Edit"))) { $edit = TRUE; } if (strtolower($_REQUEST['action']) != strtolower(tra("Show"))) { $options['use_tidy'] = $_REQUEST['show_tidy']; $options['show_page'] = $_REQUEST['show_page']; $options['show_post'] = $_REQUEST['show_post']; $options['summary'] = $_REQUEST['summary']; $options['current_session'] = $_REQUEST['current_session']; } } $count = 0; foreach($urls as $url) { if (!(isset($_REQUEST['delete'][$count]) and $_REQUEST['delete'][$count] == 'delete')) { $result[$count] = get_url($url,$options['use_tidy'] == 'y'); if ($edit and is_string($_REQUEST['xpath'][$count]) and trim($_REQUEST['xpath'][$count]) != '') { $result[$count]['xpath'] = trim($_REQUEST['xpath'][$count]); } elseif ($edit) { unset($result[$count]['xpath']); } } $count++; } if ($edit and file_exists("tiki_tests/tests/".basename($_REQUEST['filename']))) { save_test($result,"tiki_tests/tests/".basename($_REQUEST['filename']),$options); } $smarty->assign_by_ref('result',$result); $smarty->assign("filename",$_REQUEST['filename']); $smarty->assign('show_page',$options['show_page']); $smarty->assign('show_post',$options['show_post']); $smarty->assign('show_tidy',$options['use_tidy']); $smarty->assign('current_session',$options['current_session']); $smarty->assign('summary',$options['summary']); $smarty->assign('title',tra("TikiTests Edit")); $smarty->assign('mid', 'tiki-tests_edit.tpl'); $smarty->display('tiki.tpl');