r26004: Add some simple credentials tests.
authorJelmer Vernooij <jelmer@samba.org>
Fri, 16 Nov 2007 19:54:13 +0000 (20:54 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 21 Dec 2007 04:45:40 +0000 (05:45 +0100)
(This used to be commit e96c722cbfe30a4f9c1f843b48e8cf5b78aa13e7)

source4/auth/credentials/tests/simple.c [new file with mode: 0644]
source4/torture/local/config.mk
source4/torture/local/local.c

diff --git a/source4/auth/credentials/tests/simple.c b/source4/auth/credentials/tests/simple.c
new file mode 100644 (file)
index 0000000..c059878
--- /dev/null
@@ -0,0 +1,120 @@
+/* 
+   Unix SMB/CIFS implementation.
+   Samba utility functions
+   Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "auth/credentials/credentials.h"
+#include "torture/torture.h"
+
+static bool test_init(struct torture_context *tctx)
+{
+       struct cli_credentials *creds = cli_credentials_init(tctx);
+
+       cli_credentials_set_domain(creds, "bla", CRED_SPECIFIED);
+
+       torture_assert_str_equal(tctx, "BLA", cli_credentials_get_domain(creds),
+                                "domain");
+
+       cli_credentials_set_username(creds, "someuser", CRED_SPECIFIED);
+
+       torture_assert_str_equal(tctx, "someuser", 
+                                cli_credentials_get_username(creds), 
+                                "username");
+
+       cli_credentials_set_password(creds, "p4ssw0rd", CRED_SPECIFIED);
+
+       torture_assert_str_equal(tctx, "p4ssw0rd", 
+                                cli_credentials_get_password(creds),
+                                "password");
+
+       return true;
+}
+
+static bool test_init_anonymous(struct torture_context *tctx)
+{
+       struct cli_credentials *creds = cli_credentials_init_anon(tctx);
+
+       torture_assert_str_equal(tctx, cli_credentials_get_domain(creds),
+                                "", "domain");
+
+       torture_assert_str_equal(tctx, cli_credentials_get_username(creds),
+                                "", "username");
+
+       torture_assert(tctx, cli_credentials_get_password(creds) == NULL,
+                                "password");
+
+       return true;
+}
+
+static bool test_parse_string(struct torture_context *tctx)
+{
+       struct cli_credentials *creds = cli_credentials_init_anon(tctx);
+
+       /* anonymous */
+       cli_credentials_parse_string(creds, "%", CRED_SPECIFIED);
+
+       torture_assert_str_equal(tctx, cli_credentials_get_domain(creds),
+                                "", "domain");
+
+       torture_assert_str_equal(tctx, cli_credentials_get_username(creds),
+                                "", "username");
+
+       torture_assert(tctx, cli_credentials_get_password(creds) == NULL,
+                                "password");
+
+       /* username + password */
+       cli_credentials_parse_string(creds, "somebody%secret", 
+                                    CRED_SPECIFIED);
+
+       torture_assert_str_equal(tctx, cli_credentials_get_domain(creds),
+                                "", "domain");
+
+       torture_assert_str_equal(tctx, cli_credentials_get_username(creds),
+                                "somebody", "username");
+
+       torture_assert_str_equal(tctx, cli_credentials_get_password(creds),
+                                "secret", "password");
+
+       /* principal */
+       cli_credentials_parse_string(creds, "prin@styx", 
+                                    CRED_SPECIFIED);
+
+       torture_assert_str_equal(tctx, cli_credentials_get_realm(creds),
+                                "STYX", "realm");
+
+       torture_assert_str_equal(tctx, 
+                                cli_credentials_get_principal(creds, tctx),
+                                "prin@styx", "principal");
+
+       return true;
+}
+
+struct torture_suite *torture_local_credentials(TALLOC_CTX *mem_ctx)
+{
+       struct torture_suite *suite = torture_suite_create(mem_ctx, 
+                                                          "CREDENTIALS");
+
+       torture_suite_add_simple_test(suite, "init", test_init);
+       torture_suite_add_simple_test(suite, "init anonymous", 
+                                     test_init_anonymous);
+       torture_suite_add_simple_test(suite, "parse_string", 
+                                     test_parse_string);
+
+       return suite;
+}
+
index 333947b507b08f005de9d0b7b56f24eb3f8f27c5..fcddfe99ef400f22d27d253b922ff78cfc995b00 100644 (file)
@@ -28,6 +28,7 @@ OBJ_FILES = \
                ../../lib/tdr/testsuite.o \
                ../../lib/events/testsuite.o \
                ../../param/tests/share.o \
+               ../../auth/credentials/tests/simple.o \
                local.o \
                dbspeed.o \
                torture.o
index 5f2217782615e503d434f99d646c480926dfa6cd..e02287c0034f17dd5ac4b540a4e329d05f8c8b9f 100644 (file)
@@ -52,6 +52,7 @@
        torture_local_event, 
        torture_local_torture,
        torture_local_dbspeed, 
+       torture_local_credentials,
        torture_registry,
        NULL
 };