Exemplo n.º 1
0
function search_func()
{
    global $context;
    if (!empty($context['search_errors'])) {
        $result_text = implode("\n", $context['search_errors']['messages']);
        $result = new xmlrpcval(array('result' => new xmlrpcval(false, 'boolean'), 'result_text' => new xmlrpcval(basic_clean($result_text), 'base64')), 'struct');
        return new xmlrpcresp($result);
    }
    //by Post? by Topic?
    //if (!$context['compact'])
    if ((ExttMbqBase::$otherParameters['search_filter']['userid'] || ExttMbqBase::$otherParameters['search_filter']['searchuser']) && !ExttMbqBase::$otherParameters['search_filter']['showposts']) {
        return search_topic_func();
    } elseif (!$context['compact']) {
        return search_post_func();
    } else {
        return search_topic_func();
    }
}
Exemplo n.º 2
0
function testApiFunction($func, $silent = true, $all = false)
{
    global $server_param, $error;
    echo "Testing {$func}... ";
    $time = microtime(true);
    if (in_array($func, array('remove_attachment', 'upload_avatar', 'delete_conversation'))) {
        echo "Skipped.\r\n";
        return;
    }
    $resp = false;
    $pass = 0;
    if (substr($func, 0, 2) == 'm_') {
        require_once "include/moderation.php";
    } else {
        require_once "include/" . str_replace("_func", "", $server_param[$func]['function']) . ".php";
    }
    try {
        ob_start();
        $error = "";
        switch ($func) {
            case "authorize_user":
                $resp = authorize_user_func(new xmlrpcval(array(new xmlrpcval("Darkimmortal", "string"), new xmlrpcval("9989", "string")), "array"));
                break;
            case "get_board_stat":
                $resp = get_board_stat_func(new xmlrpcval(array(), "array"));
                break;
            case "get_box":
                $resp = get_box_func(new xmlrpcval(array(new xmlrpcval("0", "string"), new xmlrpcval("0", "int"), new xmlrpcval("25", "int")), "array"));
                break;
            case "get_box_info":
                $resp = get_box_info_func(new xmlrpcval(array(), "array"));
                break;
            case "get_config":
                $resp = get_config_func(new xmlrpcval(array(), "array"));
                break;
            case "get_conversation":
                $resp = get_conversation_func(new xmlrpcval(array(new xmlrpcval("2", "string"), new xmlrpcval("0", "int"), new xmlrpcval("25", "int")), "array"));
                break;
            case "get_conversations":
                $resp = get_conversations_func(new xmlrpcval(array(new xmlrpcval("0", "int"), new xmlrpcval("25", "int")), "array"));
                break;
            case "m_stick_topic":
                $resp = m_stick_topic_func(new xmlrpcval(array(new xmlrpcval("2", "int"), new xmlrpcval("2", "int")), "array"));
                break;
            case "m_ban_user":
                $resp = m_ban_user_func(new xmlrpcval(array(new xmlrpcval("another user", "string"), new xmlrpcval("1", "int"), new xmlrpcval("testing ban...", "string")), "array"));
                break;
            case "get_dashboard":
                $resp = get_dashboard_func(new xmlrpcval(array(new xmlrpcval(false, "boolean")), "array"));
                break;
            case "get_forum":
                $resp = get_forum_func(new xmlrpcval(array(), "array"));
                break;
            case "upload_attach":
                $resp = upload_attach_func(new xmlrpcval(array(new xmlrpcval("2", "string"), new xmlrpcval("", "string"), new xmlrpcval("aaaa", "string")), "array"));
                break;
            case "create_message":
                $resp = create_message_func(new xmlrpcval(array(new xmlrpcval(array(new xmlrpcval("Darkimmortal ", "string"), new xmlrpcval("another user", "string")), "array"), new xmlrpcval("test pm #" . mt_rand(0, 99999), "string"), new xmlrpcval("UNIT TEST PM #" . mt_rand(0, 99999) . " [b]lol [i]test[/i][/b]", "string"), new xmlrpcval(1, "int"), new xmlrpcval("0", "string")), "array"));
                break;
            case "get_box":
                $resp = get_box_func(new xmlrpcval(array(new xmlrpcval("1", "string"), new xmlrpcval("0", "string"), new xmlrpcval("25", "string")), "array"));
                break;
            case "get_message":
                $resp = get_message_func(new xmlrpcval(array(new xmlrpcval("5", "string"), new xmlrpcval("1", "string"), new xmlrpcval(true, "boolean")), "array"));
                break;
            case "get_quote_pm":
                $resp = get_quote_pm_func(new xmlrpcval(array(new xmlrpcval("5", "string")), "array"));
                break;
            case "delete_message":
                $resp = delete_message_func(new xmlrpcval(array(new xmlrpcval("8", "string"), new xmlrpcval("1", "string")), "array"));
                break;
            case "mark_pm_unread":
                $resp = mark_pm_unread_func(new xmlrpcval(array(new xmlrpcval("5", "string"), new xmlrpcval("1", "string")), "array"));
                break;
            case "get_box":
                $resp = get_box_info_func(new xmlrpcval(array(), "array"));
                break;
            case "get_id_by_url":
                $resp = get_id_by_url_func(new xmlrpcval(array(new xmlrpcval("http://kiririn/mybb/showthread.php?tid=3&pid=20#pid20", "string")), "array"));
                break;
            case "get_inbox_stat":
                $resp = get_inbox_stat_func(new xmlrpcval(array(new xmlrpcval("0", "string"), new xmlrpcval("0", "string")), "array"));
                break;
            case "get_latest_topic":
                $resp = get_latest_topic_func(new xmlrpcval(array(new xmlrpcval("0", "int"), new xmlrpcval("25", "int")), "array"));
                break;
            case "get_new_topic":
                $resp = get_new_topic_func(new xmlrpcval(array(new xmlrpcval("0", "int"), new xmlrpcval("25", "int")), "array"));
                break;
            case "get_online_users":
                $resp = get_online_users_func(new xmlrpcval(array(), "array"));
                break;
            case "get_participated_topic":
                $resp = get_participated_topic_func(new xmlrpcval(array(new xmlrpcval("Darkimmortal", "string"), new xmlrpcval("0", "int"), new xmlrpcval("10", "int")), "array"));
                break;
            case "get_quote_conversation":
                $resp = get_quote_conversation_func(new xmlrpcval(array(new xmlrpcval("2", "string"), new xmlrpcval("2", "string")), "array"));
                break;
            case "get_quote_post":
                $resp = get_quote_post_func(new xmlrpcval(array(new xmlrpcval("2", "string")), "array"));
                break;
            case "get_raw_post":
                $resp = get_raw_post_func(new xmlrpcval(array(new xmlrpcval("2", "string")), "array"));
                break;
            case "get_subscribed_forum":
                $resp = get_subscribed_forum_func(new xmlrpcval(array(), "array"));
                break;
            case "get_subscribed_topic":
                $resp = get_subscribed_topic_func(new xmlrpcval(array(new xmlrpcval("0", "int"), new xmlrpcval("25", "int")), "array"));
                break;
            case "get_thread":
                $resp = get_thread_func(new xmlrpcval(array(new xmlrpcval("5", "string"), new xmlrpcval("0", "int"), new xmlrpcval("25", "int"), new xmlrpcval(true, "boolean")), "array"));
                break;
            case "get_thread_by_post":
                $resp = get_thread_by_post_func(new xmlrpcval(array(new xmlrpcval("2", "string"), new xmlrpcval("20", "int"), new xmlrpcval(true, "boolean")), "array"));
                break;
            case "get_thread_by_unread":
                $resp = get_thread_by_unread_func(new xmlrpcval(array(new xmlrpcval("2", "string"), new xmlrpcval("20", "int"), new xmlrpcval(true, "boolean")), "array"));
                break;
            case "get_topic":
                $resp = get_topic_func(new xmlrpcval(array(new xmlrpcval("2", "string"), new xmlrpcval("0", "int"), new xmlrpcval("25", "int"), new xmlrpcval("", "string")), "array"));
                break;
            case "get_unread_topic":
                $resp = get_unread_topic_func(new xmlrpcval(array(new xmlrpcval("0", "int"), new xmlrpcval("25", "int"), new xmlrpcval(array("not_in" => new xmlrpcval(array(), "array"), "only_in" => new xmlrpcval(array(new xmlrpcval("2", "string")), "array")), "struct")), "array"));
                break;
            case "get_user_info":
                $resp = get_user_info_func(new xmlrpcval(array(new xmlrpcval("Darkimmortal", "string")), "array"));
                break;
            case "get_user_reply_post":
                $resp = get_user_reply_post_func(new xmlrpcval(array(new xmlrpcval("Darkimmortal", "string")), "array"));
                break;
            case "get_user_topic":
                $resp = get_user_topic_func(new xmlrpcval(array(new xmlrpcval("Darkimmortal", "string")), "array"));
                break;
            case "invite_participant":
                $resp = invite_participant_func(new xmlrpcval(array(new xmlrpcval(array(new xmlrpcval("another user", "string")), "array"), new xmlrpcval("2", "string")), "array"));
                break;
            case "like_post":
                $resp = like_post_func(new xmlrpcval(array(new xmlrpcval("39", "string")), "array"));
                break;
            case "login":
                $resp = login_func(new xmlrpcval(array(new xmlrpcval("Darkimmortal", "string"), new xmlrpcval("9989", "string")), "array"));
                break;
            case "login_forum":
                $resp = login_forum_func(new xmlrpcval(array(new xmlrpcval("5", "int"), new xmlrpcval("1", "string")), "array"));
                break;
            case "logout_user":
                if (!$all) {
                    $resp = logout_user_func(new xmlrpcval(array(), "array"));
                }
                break;
            case "mark_all_as_read":
                $resp = mark_all_as_read_func(new xmlrpcval(array(), "array"));
                break;
            case "new_conversation":
                $resp = new_conversation_func(new xmlrpcval(array(new xmlrpcval(array(new xmlrpcval("another user", "string")), "array"), new xmlrpcval("unit test conversation", "string"), new xmlrpcval("[b]lol [i]test[/i][/b]", "string")), "array"));
                break;
            case "new_topic":
                $resp = new_topic_func(new xmlrpcval(array(new xmlrpcval("2", "string"), new xmlrpcval("unit test topic #" . mt_rand(0, 99999), "string"), new xmlrpcval("[b]lol [i]test[/i][/b]", "string"), new xmlrpcval("", "string"), new xmlrpcval(array(), "array"), new xmlrpcval("", "string")), "array"));
                break;
            case "reply_conversation":
                $resp = reply_conversation_func(new xmlrpcval(array(new xmlrpcval("2", "string"), new xmlrpcval("UNIT TEST REPLY [b]lol [i]test[/i][/b]", "string")), "array"));
                break;
            case "reply_post":
                $resp = reply_post_func(new xmlrpcval(array(new xmlrpcval("2", "string"), new xmlrpcval("2", "string"), new xmlrpcval("unit test reply #" . mt_rand(0, 99999), "string"), new xmlrpcval("UNIT TEST REPLY #" . mt_rand(0, 99999) . " [b]lol [i]test[/i][/b]", "string"), new xmlrpcval(array(), "array"), new xmlrpcval("", "string"), new xmlrpcval(true, "boolean")), "array"));
                break;
            case "reply_topic":
                $resp = reply_topic_func(new xmlrpcval(array(new xmlrpcval("2", "string"), new xmlrpcval("2", "string"), new xmlrpcval("unit test reply #" . mt_rand(0, 99999), "string"), new xmlrpcval("UNIT TEST REPLY #" . mt_rand(0, 99999) . " [b]lol [i]test[/i][/b]", "string"), new xmlrpcval(array(), "array"), new xmlrpcval("", "string"), new xmlrpcval(true, "boolean")), "array"));
                break;
            case "report_pm":
                $resp = report_pm_func(new xmlrpcval(array(), "array"));
                break;
            case "report_post":
                $resp = report_post_func(new xmlrpcval(array(new xmlrpcval("2", "string"), new xmlrpcval("unit test report reason #" . mt_rand(0, 99999), "string")), "array"));
                break;
            case "save_raw_post":
                $resp = save_raw_post_func(new xmlrpcval(array(new xmlrpcval("14", "string"), new xmlrpcval("unit test edit title #" . mt_rand(0, 99999), "string"), new xmlrpcval("[color=red]unit test edit #" . mt_rand(0, 99999) . "[/color] :cool:", "string"), new xmlrpcval(true, "boolean")), "array"));
                break;
            case "search_post":
                $resp = search_post_func(new xmlrpcval(array(new xmlrpcval("test", "string"), new xmlrpcval("0", "int"), new xmlrpcval("25", "int"), new xmlrpcval("", "string")), "array"));
                break;
            case "search_topic":
                $resp = search_topic_func(new xmlrpcval(array(new xmlrpcval("test", "string"), new xmlrpcval("0", "int"), new xmlrpcval("25", "int"), new xmlrpcval("", "string")), "array"));
                break;
            case "subscribe_forum":
                $resp = subscribe_forum_func(new xmlrpcval(array(), "array"));
                break;
            case "subscribe_topic":
                $resp = subscribe_topic_func(new xmlrpcval(array(new xmlrpcval("23", "string")), "array"));
                break;
            case "unlike_post":
                $resp = unlike_post_func(new xmlrpcval(array(new xmlrpcval("39", "string")), "array"));
                break;
            case "unsubscribe_forum":
                $resp = unsubscribe_forum_func(new xmlrpcval(array(), "array"));
                break;
            case "unsubscribe_topic":
                $resp = unsubscribe_topic_func(new xmlrpcval(array(new xmlrpcval("23", "string")), "array"));
                break;
            default:
                echo "Unknown function/no unit test implemented yet.";
                $pass = 2;
        }
        //$ob = ob_get_clean();
        if ($pass < 2) {
            $pass = 1;
        }
        if (strlen($error) > 0) {
            $pass = -1;
        }
    } catch (Exception $e) {
        $pass = 0;
        echo "*FAILED*:\r\n";
        throw $e;
        echo "\r\n";
    }
    if ($pass === 1) {
        echo "Passed! (";
        echo round(microtime(true) - $time, 4);
        echo ")";
    }
    if ($pass < 1 && $resp !== false && !$silent || !$all) {
        echo "\r\n";
        var_dump($resp);
        //var_dump($ob);
    }
    if ($pass == -1) {
        echo "*FAILED*: ";
    }
    echo $error;
    echo "\r\n";
}