ssu
variablestest.cpp
Go to the documentation of this file.
1 
8 #include "variablestest.h"
9 
10 void VariablesTest::initTestCase()
11 {
12  variables.insert("packagesDomain", "packages.example.com");
13  variables.insert("releaseDomain", "releases.example.com");
14  variables.insert("rndProtocol", "https");
15  variables.insert("release", "devel");
16  variables.insert("arch", "armv8");
17  variables.insert("flavourName", "flavour");
18 
19  urls.insert("http://%(packagesDomain)/releases/%(release)/jolla/%(arch)/",
20  "http://packages.example.com/releases/devel/jolla/armv8/");
21  urls.insert("%(rndProtocol)://%(releaseDomain)/nemo/%(release)-%(flavourName)/platform/%(arch)/",
22  "https://releases.example.com/nemo/devel-flavour/platform/armv8/");
23  // test missing operator, which should fall back to just variable value
24  urls.insert("%(rndProtocol)://%(unsetDomain:)/nemo/%(release)-%(flavourName)/platform/%(arch)/",
25  "https:///nemo/devel-flavour/platform/armv8/");
26  urls.insert("%(rndProtocol)://%(releaseDomain:)/nemo/%(release)-%(flavourName)/platform/%(arch)/",
27  "https://releases.example.com/nemo/devel-flavour/platform/armv8/");
28  urls.insert("%(rndProtocol)://%(releaseDomain:unset.example.com)/nemo/%(release)-%(flavourName)/platform/%(arch)/",
29  "https://releases.example.com/nemo/devel-flavour/platform/armv8/");
30  // check if :- works
31  urls.insert("%(rndProtocol)://%(releaseDomain:-unset.example.com)/nemo/%(release)-%(flavourName)/platform/%(arch)/",
32  "https://releases.example.com/nemo/devel-flavour/platform/armv8/");
33  urls.insert("%(rndProtocol)://%(unsetDomain:-unset.example.com)/nemo/%(release)-%(flavourName)/platform/%(arch)/",
34  "https://unset.example.com/nemo/devel-flavour/platform/armv8/");
35  // test with empty replacement pattern
36  urls.insert("%(rndProtocol)://%(unsetDomain:-)/nemo/%(release)-%(flavourName)/platform/%(arch)/",
37  "https:///nemo/devel-flavour/platform/armv8/");
38  // check if :+ works
39  // substitution of variable with set.example.com
40  urls.insert("%(rndProtocol)://%(releaseDomain:+set.example.com)/nemo/%(release)-%(flavourName)/platform/%(arch)/",
41  "https://set.example.com/nemo/devel-flavour/platform/armv8/");
42  // substitution of variable with variable + /set
43  urls.insert("%(rndProtocol)://%(releaseDomain:+%(releaseDomain)/set)/nemo/%(release)-%(flavourName)/platform/%(arch)/",
44  "https://releases.example.com/set/nemo/devel-flavour/platform/armv8/");
45  // substitution of variable with empty variable + /set -- should substitute to ""
46  urls.insert("%(rndProtocol)://%(unsetDomain:+%(unsetDomain)/set)/nemo/%(release)-%(flavourName)/platform/%(arch)/",
47  "https:///nemo/devel-flavour/platform/armv8/");
48  // test :=
49  urls.insert("%(%(rndProtocol):=https?https://%(releaseDomain)/%(release)-%(flavourName)|http://%(releaseDomain)/%(release)-%(flavourName))",
50  "https://releases.example.com/devel-flavour");
51  urls.insert("%(%(rndProtocol):=http?https://%(releaseDomain)/%(release)-%(flavourName)|http://%(releaseDomain)/%(release)-%(flavourName))",
52  "http://releases.example.com/devel-flavour");
53 
54 }
55 
56 void VariablesTest::cleanupTestCase()
57 {
58 
59 }
60 
61 void VariablesTest::checkResolveString()
62 {
63  QHashIterator<QString, QString> i(urls);
64 
65  while (i.hasNext()) {
66  i.next();
67  QString result = var.resolveString(i.key(), &variables);
68  qDebug() << i.key() << " resolved to " << result;
69  QCOMPARE(result, i.value());
70  }
71 }
variablestest.h
SsuVariables::resolveString
static QString resolveString(const QString &pattern, QHash< QString, QString > *variables, int recursionDepth=0)
Definition: ssuvariables.cpp:39