Inside Bitcoin
Opening the selected file…
Inside Bitcoin
Opening the selected file…
The code behind the network, with room to understand it.
Release published 2026-10-28 · Snapshot fetched 2026-11-01. Latest stable release at fetch time; development branches and Git history are excluded. Only the selected code window and visible folders load here.
1// Copyright (c) 2012-present The Bitcoin Core developers2// Distributed under the MIT software license, see the accompanying3// file COPYING or http://www.opensource.org/licenses/mit-license.php.5#include <rest.h>6#include <test/util/common.h>7#include <test/util/setup_common.h>9#include <boost/test/unit_test.hpp>11#include <string>13BOOST_FIXTURE_TEST_SUITE(rest_tests, BasicTestingSetup)15BOOST_AUTO_TEST_CASE(test_query_string)16{17std::string param;18RESTResponseFormat rf;19// No query string20rf = ParseDataFormat(param, "/rest/endpoint/someresource.json");21BOOST_CHECK_EQUAL(param, "/rest/endpoint/someresource");22BOOST_CHECK_EQUAL(rf, RESTResponseFormat::JSON);24// Query string with single parameter25rf = ParseDataFormat(param, "/rest/endpoint/someresource.bin?p1=v1");26BOOST_CHECK_EQUAL(param, "/rest/endpoint/someresource");27BOOST_CHECK_EQUAL(rf, RESTResponseFormat::BINARY);29// Query string with multiple parameters30rf = ParseDataFormat(param, "/rest/endpoint/someresource.hex?p1=v1&p2=v2");31BOOST_CHECK_EQUAL(param, "/rest/endpoint/someresource");32BOOST_CHECK_EQUAL(rf, RESTResponseFormat::HEX);34// Incorrectly formed query string will not be handled35rf = ParseDataFormat(param, "/rest/endpoint/someresource.json&p1=v1");36BOOST_CHECK_EQUAL(param, "/rest/endpoint/someresource.json&p1=v1");37BOOST_CHECK_EQUAL(rf, RESTResponseFormat::UNDEF);39// Omitted data format with query string should return UNDEF and hide query string40rf = ParseDataFormat(param, "/rest/endpoint/someresource?p1=v1");41BOOST_CHECK_EQUAL(param, "/rest/endpoint/someresource");42BOOST_CHECK_EQUAL(rf, RESTResponseFormat::UNDEF);44// Data format specified after query string45rf = ParseDataFormat(param, "/rest/endpoint/someresource?p1=v1.json");46BOOST_CHECK_EQUAL(param, "/rest/endpoint/someresource");47BOOST_CHECK_EQUAL(rf, RESTResponseFormat::UNDEF);48}49BOOST_AUTO_TEST_SUITE_END()
Independent explanations by MyBitcoinExplorer. Not affiliated with or endorsed by Bitcoin Core. Guides are educational and do not replace the source or its tests.
Bitcoin Core source © its contributors, distributed under the MIT license. Original notices and bundled third-party licenses are retained in the source tree.