]> git.saurik.com Git - apt.git/blobdiff - test/libapt/strutil_test.cc
clear HitEof flag in FileFd::Seek
[apt.git] / test / libapt / strutil_test.cc
index af6eb2cc635a681e8b07a89ff3edc610bfbfc3a5..618f4daba22ce4544645171b288d58d6475d4a13 100644 (file)
@@ -1,10 +1,15 @@
+#include <config.h>
+
 #include <apt-pkg/strutl.h>
 
+#include <string>
+#include <vector>
+
 #include "assert.h"
 
-int main(int argc,char *argv[])
+int main()
 {
-   string input, output, expected;
+   std::string input, output, expected;
 
    // no input
    input = "foobar";
@@ -42,5 +47,50 @@ int main(int argc,char *argv[])
    output = DeEscapeString(input);
    equals(output, expected);
 
+   // Split
+   input = "status: libnet1:amd64: unpacked";
+   std::vector<std::string> result = StringSplit(input, ": ");
+   equals(result[0], "status");
+   equals(result[1], "libnet1:amd64");
+   equals(result[2], "unpacked");
+   equals(result.size(), 3);
+
+   input = "status: libnet1:amd64: unpacked";
+   result = StringSplit(input, "xxx");
+   equals(result[0], input);
+   equals(result.size(), 1);
+
+   input = "status: libnet1:amd64: unpacked";
+   result = StringSplit(input, "");
+   equals(result.size(), 0);
+
+   input = "x:y:z";
+   result = StringSplit(input, ":", 2);
+   equals(result.size(), 2);
+   equals(result[0], "x");
+   equals(result[1], "y:z");
+
+   input = "abc";
+   result = StringSplit(input, "");
+   equals(result.size(), 0);
+
+   // endswith
+   bool b;
+   input = "abcd";
+   b = APT::String::Endswith(input, "d");
+   equals(b, true);
+
+   b = APT::String::Endswith(input, "cd");
+   equals(b, true);
+
+   b = APT::String::Endswith(input, "abcd");
+   equals(b, true);
+
+   b = APT::String::Endswith(input, "x");
+   equals(b, false);
+
+   b = APT::String::Endswith(input, "abcndefg");
+   equals(b, false);
+
    return 0;
 }