tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

TestXPathGenerator.cpp (4246B)


      1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
      3 /* This Source Code Form is subject to the terms of the Mozilla Public
      4 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
      5 * You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 #include "XPathGenerator.h"
      8 #include "gtest/gtest.h"
      9 #include "nsString.h"
     10 
     11 TEST(TestXPathGenerator, TestQuoteArgumentWithoutQuote)
     12 {
     13  nsAutoString arg;
     14  arg.AssignLiteral(u"testing");
     15 
     16  nsAutoString expectedResult;
     17  expectedResult.AssignLiteral(u"\'testing\'");
     18 
     19  nsAutoString result;
     20  XPathGenerator::QuoteArgument(arg, result);
     21 
     22  ASSERT_TRUE(expectedResult.Equals(result));
     23 }
     24 
     25 TEST(TestXPathGenerator, TestQuoteArgumentWithSingleQuote)
     26 {
     27  nsAutoString arg;
     28  arg.AssignLiteral(u"\'testing\'");
     29 
     30  nsAutoString expectedResult;
     31  expectedResult.AssignLiteral(u"\"\'testing\'\"");
     32 
     33  nsAutoString result;
     34  XPathGenerator::QuoteArgument(arg, result);
     35 
     36  ASSERT_TRUE(expectedResult.Equals(result));
     37 }
     38 
     39 TEST(TestXPathGenerator, TestQuoteArgumentWithDoubleQuote)
     40 {
     41  nsAutoString arg;
     42  arg.AssignLiteral(u"\"testing\"");
     43 
     44  nsAutoString expectedResult;
     45  expectedResult.AssignLiteral(u"\'\"testing\"\'");
     46 
     47  nsAutoString result;
     48  XPathGenerator::QuoteArgument(arg, result);
     49 
     50  ASSERT_TRUE(expectedResult.Equals(result));
     51 }
     52 
     53 TEST(TestXPathGenerator, TestQuoteArgumentWithSingleAndDoubleQuote)
     54 {
     55  nsAutoString arg;
     56  arg.AssignLiteral(u"\'testing\"");
     57 
     58  nsAutoString expectedResult;
     59  expectedResult.AssignLiteral(u"concat(\'\',\"\'\",\'testing\"\')");
     60 
     61  nsAutoString result;
     62  XPathGenerator::QuoteArgument(arg, result);
     63  printf("Result: %s\nExpected: %s\n", NS_ConvertUTF16toUTF8(result).get(),
     64         NS_ConvertUTF16toUTF8(expectedResult).get());
     65 
     66  ASSERT_TRUE(expectedResult.Equals(result));
     67 }
     68 
     69 TEST(TestXPathGenerator,
     70     TestQuoteArgumentWithDoubleQuoteAndASequenceOfSingleQuote)
     71 {
     72  nsAutoString arg;
     73  arg.AssignLiteral(u"\'\'\'\'testing\"");
     74 
     75  nsAutoString expectedResult;
     76  expectedResult.AssignLiteral(u"concat(\'\',\"\'\'\'\'\",\'testing\"\')");
     77 
     78  nsAutoString result;
     79  XPathGenerator::QuoteArgument(arg, result);
     80  printf("Result: %s\nExpected: %s\n", NS_ConvertUTF16toUTF8(result).get(),
     81         NS_ConvertUTF16toUTF8(expectedResult).get());
     82 
     83  ASSERT_TRUE(expectedResult.Equals(result));
     84 }
     85 
     86 TEST(TestXPathGenerator,
     87     TestQuoteArgumentWithDoubleQuoteAndTwoSequencesOfSingleQuote)
     88 {
     89  nsAutoString arg;
     90  arg.AssignLiteral(u"\'\'\'\'testing\'\'\'\'\'\'\"");
     91 
     92  nsAutoString expectedResult;
     93  expectedResult.AssignLiteral(
     94      u"concat(\'\',\"\'\'\'\'\",\'testing\',\"\'\'\'\'\'\'\",\'\"\')");
     95 
     96  nsAutoString result;
     97  XPathGenerator::QuoteArgument(arg, result);
     98  printf("Result: %s\nExpected: %s\n", NS_ConvertUTF16toUTF8(result).get(),
     99         NS_ConvertUTF16toUTF8(expectedResult).get());
    100 
    101  ASSERT_TRUE(expectedResult.Equals(result));
    102 }
    103 
    104 TEST(TestXPathGenerator,
    105     TestQuoteArgumentWithDoubleQuoteAndTwoSequencesOfSingleQuoteInMiddle)
    106 {
    107  nsAutoString arg;
    108  arg.AssignLiteral(u"t\'\'\'\'estin\'\'\'\'\'\'\"g");
    109 
    110  nsAutoString expectedResult;
    111  expectedResult.AssignLiteral(
    112      u"concat(\'t\',\"\'\'\'\'\",\'estin\',\"\'\'\'\'\'\'\",\'\"g\')");
    113 
    114  nsAutoString result;
    115  XPathGenerator::QuoteArgument(arg, result);
    116  printf("Result: %s\nExpected: %s\n", NS_ConvertUTF16toUTF8(result).get(),
    117         NS_ConvertUTF16toUTF8(expectedResult).get());
    118 
    119  ASSERT_TRUE(expectedResult.Equals(result));
    120 }
    121 
    122 TEST(TestXPathGenerator, TestEscapeNameWithNormalCharacters)
    123 {
    124  nsAutoString arg;
    125  arg.AssignLiteral(u"testing");
    126 
    127  nsAutoString expectedResult;
    128  expectedResult.AssignLiteral(u"testing");
    129 
    130  nsAutoString result;
    131  XPathGenerator::EscapeName(arg, result);
    132 
    133  ASSERT_TRUE(expectedResult.Equals(result));
    134 }
    135 
    136 TEST(TestXPathGenerator, TestEscapeNameWithSpecialCharacters)
    137 {
    138  nsAutoString arg;
    139  arg.AssignLiteral(u"^testing!");
    140 
    141  nsAutoString expectedResult;
    142  expectedResult.AssignLiteral(u"*[local-name()=\'^testing!\']");
    143 
    144  nsAutoString result;
    145  XPathGenerator::EscapeName(arg, result);
    146  printf("Result: %s\nExpected: %s\n", NS_ConvertUTF16toUTF8(result).get(),
    147         NS_ConvertUTF16toUTF8(expectedResult).get());
    148 
    149  ASSERT_TRUE(expectedResult.Equals(result));
    150 }