test_ad_gpo.c revision 4611802d41d8954a3040f39403590adb920ca521
/*
Authors:
Yassir Elley <yelley@redhat.com>
Copyright (C) 2014 Red Hat
SSSD tests: GPO unit tests
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 <talloc.h>
#include <tevent.h>
#include <errno.h>
#include <popt.h>
#include <unistd.h>
#include <ifaddrs.h>
/* In order to access opaque types */
#include "tests/cmocka/common_mock.h"
struct ad_gpo_test_ctx {
struct ldb_context *ldb_ctx;
};
static struct ad_gpo_test_ctx *test_ctx;
void ad_gpo_test_setup(void **state)
{
struct ad_gpo_test_ctx);
}
void ad_gpo_test_teardown(void **state)
{
}
struct som_list_result {
const int result;
const int num_soms;
const char **som_dns;
};
/*
* Test parsing target dn into som components
*/
static void test_populate_som_list(const char *target_dn,
struct som_list_result *expected)
{
int i;
int num_soms;
&num_soms,
&som_list);
goto done;
}
bool equal = true;
equal = false;
}
assert_int_equal(equal, true);
}
if (som_list) {
}
done:
}
void test_populate_som_list_plain(void **state)
{
const char *som_dns[] = {"OU=West OU,OU=Sales OU,DC=foo,DC=com",
"OU=Sales OU,DC=foo,DC=com",
"DC=foo,DC=com"};
struct som_list_result expected = {
.num_soms = 3,
};
test_populate_som_list("CN=F21-Client,OU=West OU,OU=Sales OU,DC=foo,DC=com",
&expected);
}
void test_populate_som_list_malformed(void **state)
{
struct som_list_result expected = {
};
}
struct gplink_list_result {
const int result;
const int num_gplinks;
const char **gpo_dns;
bool *enforced;
};
/*
* Test parsing raw_gplink_value into gplink components
*/
static void test_populate_gplink_list(const char *input_gplink_value,
bool allow_enforced_only,
struct gplink_list_result *expected)
{
int i;
NULL,
goto done;
}
for (i=0; i<expected->num_gplinks; i++){
bool equal = true;
equal = false;
}
equal = false;
assert_int_equal(equal, true);
}
if (gplink_list) {
}
done:
}
void test_populate_gplink_list_plain(void **state)
{
bool enforced[] = {false, true};
struct gplink_list_result expected = {
.num_gplinks = 2,
};
test_populate_gplink_list("[OU=Sales,DC=FOO,DC=COM;0][DC=FOO,DC=COM;2]",
false,
&expected);
}
void test_populate_gplink_list_with_ignored(void **state)
{
const char *gpo_dns[] = {"OU=Sales,DC=FOO,DC=COM"};
bool enforced[] = {false};
struct gplink_list_result expected = {
.num_gplinks = 1,
};
test_populate_gplink_list("[OU=Sales,DC=FOO,DC=COM;0][DC=ignored;1]",
false,
&expected);
}
void test_populate_gplink_list_with_allow_enforced(void **state)
{
const char *gpo_dns[] = {"DC=FOO,DC=COM"};
bool enforced[] = {true};
struct gplink_list_result expected = {
.num_gplinks = 1,
};
test_populate_gplink_list("[OU=Sales,DC=FOO,DC=COM;0][DC=FOO,DC=COM;2]",
true,
&expected);
}
void test_populate_gplink_list_malformed(void **state)
{
struct gplink_list_result expected = {
};
/* the GPLinkOptions value (after semicolon) must be between 0 and 3 */
}
/*
* Test sid-matching logic
*/
static void test_ad_gpo_ace_includes_client_sid(const char *user_sid,
const char **group_sids,
int group_size,
struct dom_sid ace_dom_sid,
bool expected)
{
enum idmap_error_code err;
struct sss_idmap_ctx *idmap_ctx;
bool includes_client_sid;
&idmap_ctx);
}
void test_ad_gpo_ace_includes_client_sid_true(void **state)
{
/* ace_dom_sid represents "S-1-5-21-2-3-4" */
const char *user_sid = "S-1-5-21-1175337206-4250576914-2321192831-1103";
int group_size = 2;
const char *group_sids[] = {"S-1-5-21-2-3-4",
"S-1-5-21-2-3-5"};
ace_dom_sid, true);
}
void test_ad_gpo_ace_includes_client_sid_false(void **state)
{
/* ace_dom_sid represents "S-1-5-21-2-3-4" */
const char *user_sid = "S-1-5-21-1175337206-4250576914-2321192831-1103";
int group_size = 2;
const char *group_sids[] = {"S-1-5-21-2-3-5",
"S-1-5-21-2-3-6"};
ace_dom_sid, false);
}
{
int opt;
struct poptOption long_options[] = {
};
};
/* Set debug level to invalid value so we can deside if -d 0 was used. */
switch(opt) {
default:
return 1;
}
}
}