File: session_options_unittest.cc

package info (click to toggle)
chromium 139.0.7258.127-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 6,122,068 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (77 lines) | stat: -rw-r--r-- 2,277 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "remoting/base/session_options.h"

#include "testing/gtest/include/gtest/gtest.h"

namespace remoting {

TEST(SessionOptionsTest, ShouldBeAbleToAppendOptions) {
  SessionOptions options;
  options.Import("A:, B C :1, DE:2, EF");
  ASSERT_TRUE(options.Get("A"));
  ASSERT_EQ(*options.Get("B C "), "1");
  ASSERT_EQ(*options.Get("DE"), "2");
  ASSERT_FALSE(options.Get("EF"));
  ASSERT_FALSE(options.Get(" EF"));
  ASSERT_FALSE(options.Get("--FF"));

  options.Append("A", "100");
  options.Append("--FF", "3");
  ASSERT_EQ(*options.Get("A"), "100");
  ASSERT_EQ(*options.Get("--FF"), "3");
}

TEST(SessionOptionsTest, ShouldRemoveEmptyKeys) {
  SessionOptions options;
  options.Import("A:1,:,B:");
  ASSERT_TRUE(options.Get("A"));
  ASSERT_TRUE(options.Get("B"));
  ASSERT_FALSE(options.Get(""));
}

TEST(SessionOptionsTest, ShouldRemoveNonASCIIKeyOrValue) {
  SessionOptions options;
  options.Import("\xE9\x9B\xAA:value,key:\xE9\xA3\x9E,key2:value2");
  ASSERT_FALSE(options.Get("\xE9\x9B\xAA"));
  ASSERT_FALSE(options.Get("key"));
  ASSERT_EQ(*options.Get("key2"), "value2");
}

TEST(SessionOptionsTest, ImportAndExport) {
  SessionOptions options;
  options.Import("A:,B:,C:D,E:V");
  std::string result = options.Export();

  SessionOptions other;
  other.Append("C", "X");
  other.Import(result);
  ASSERT_EQ(options.Export(), other.Export());
}

TEST(SessionOptionsTest, ConvertToBool) {
  SessionOptions options;
  options.Import("A:,B:x,C:true,D:TRUE,E:1,F:2,G:FALSE,H:0,I");
  ASSERT_TRUE(*options.GetBool("A"));
  ASSERT_FALSE(options.GetBool("B"));
  ASSERT_TRUE(*options.GetBool("C"));
  ASSERT_TRUE(*options.GetBool("D"));
  ASSERT_TRUE(*options.GetBool("E"));
  ASSERT_FALSE(options.GetBool("F"));
  ASSERT_FALSE(*options.GetBool("G"));
  ASSERT_FALSE(*options.GetBool("H"));
  ASSERT_FALSE(options.GetBool("I"));
}

TEST(SessionOptionsTest, ConvertToint) {
  SessionOptions options;
  options.Import("A:100,B:-200,C:x,D:");
  ASSERT_EQ(*options.GetInt("A"), 100);
  ASSERT_EQ(*options.GetInt("B"), -200);
  ASSERT_FALSE(options.GetInt("C"));
  ASSERT_FALSE(options.GetInt("D"));
}

}  // namespace remoting