Sha256: c07d0f2d8347d5b198e28fb58ebc371c398a1dd414b3b4fe3e5c431c42ed6007

Contents?: true

Size: 1.82 KB

Versions: 1

Compression:

Stored size: 1.82 KB

Contents

//
//  test-SymbolIdentifier.cc
//  snowcrash
//
//  Created by Zdenek Nemec on 2/7/14.
//  Copyright (c) 2014 Apiary Inc. All rights reserved.
//

#include "snowcrash.h"
#include "snowcrashtest.h"

using namespace snowcrash;
using namespace snowcrashtest;

TEST_CASE("Punctuation in identifiers", "[symbol_identifier]")
{
    mdp::ByteBuffer source = "# Parcel's sticker @#!$%^&*=-?><,.~`\"' [/]\n";

    ParseResult<Blueprint> blueprint;
    parse(source, 0, blueprint);

    REQUIRE(blueprint.report.error.code == Error::OK);
    REQUIRE(blueprint.report.warnings.empty());

    REQUIRE(blueprint.node.resourceGroups.size() == 1);
    REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
    REQUIRE(blueprint.node.resourceGroups[0].resources[0].name == "Parcel's sticker @#!$%^&*=-?><,.~`\"'");
    REQUIRE(blueprint.node.resourceGroups[0].resources[0].uriTemplate == "/");
    REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.empty());
}

TEST_CASE("Non ASCII characters in identifiers", "[symbol_identifier]")
{
    // Blueprint in question:
    //R"(
    //# Kategorii [/]
    //");

    // "Kategorii in Russian"
    mdp::ByteBuffer source = "# \xD0\x9A\xD0\xB0\xD1\x82\xD0\xB5\xD0\xB3\xD0\xBE\xD1\x80\xD0\xB8\xD0\xB8 [/]\n";

    ParseResult<Blueprint> blueprint;
    parse(source, 0, blueprint);

    REQUIRE(blueprint.report.error.code == Error::OK);
    REQUIRE(blueprint.report.warnings.empty());

    REQUIRE(blueprint.node.resourceGroups.size() == 1);
    REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
    REQUIRE(blueprint.node.resourceGroups[0].resources[0].name == "\xD0\x9A\xD0\xB0\xD1\x82\xD0\xB5\xD0\xB3\xD0\xBE\xD1\x80\xD0\xB8\xD0\xB8");
    REQUIRE(blueprint.node.resourceGroups[0].resources[0].uriTemplate == "/");
    REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.empty());
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
redsnow-0.3.2 ext/snowcrash/test/test-SymbolIdentifier.cc