+++ /dev/null
-#include <Security/SecKeychain.h>
-#include <Security/SecKeychainSearch.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "testenv.h"
-#include "testleaks.h"
-#include "testmore.h"
-#include "testsecevent.h"
-
-void tests(int dont_skip)
-{
- SecKeychainRef keychain = NULL, default_keychain = NULL;
- is_status(SecKeychainCopyDefault(&default_keychain),
- errSecNoDefaultKeychain, "no default keychain");
-
- ok_status(test_sec_event_register(kSecEveryEventMask),
- "register for all events");
- ok_status(SecKeychainCreate("test", 4, "test", FALSE, NULL, &keychain),
- "create keychain");
- is_sec_event(kSecKeychainListChangedEvent, NULL, NULL, NULL,
- "list changed event");
- SecKeychainRef notKc = NULL;
-
- is_sec_event(kSecDefaultChangedEvent, ¬Kc, NULL, NULL,
- "default changed event");
-
- is((intptr_t)keychain, (intptr_t)notKc,
- "keychain in notification is keychain");
-
- no_sec_event("no event");
-
- ok_status(SecKeychainCopyDefault(&default_keychain),
- "get default keychain");
- is((intptr_t)default_keychain, (intptr_t)keychain,
- "default kc is just created kc");
- if (default_keychain)
- {
- CFRelease(default_keychain);
- default_keychain = NULL;
- }
-
- SecKeychainRef keychain2;
- ok_status(SecKeychainCreate("test2", 4, "test", FALSE, NULL, &keychain2),
- "create keychain2");
- is_sec_event(kSecKeychainListChangedEvent, NULL, NULL, NULL,
- "list changed event");
- no_sec_event("no event");
-
- ok_status(SecKeychainCopyDefault(&default_keychain),
- "get default keychain");
-
- is((intptr_t)default_keychain, (intptr_t)keychain,
- "default kc is first created kc");
-
- if (default_keychain)
- {
- CFRelease(default_keychain);
- default_keychain = NULL;
- }
-
- ok_status(SecKeychainDelete(keychain), "delete default keychain");
- is_sec_event(kSecKeychainListChangedEvent, NULL, NULL, NULL,
- "list changed event");
-
- is_sec_event(kSecDefaultChangedEvent, NULL, NULL, NULL,
- "default changed event");
-
- no_sec_event("no event");
- CFRelease(keychain);
-
- ok_status(SecKeychainDelete(keychain2), "delete keychain2");
- CFRelease(keychain2);
- is_sec_event(kSecKeychainListChangedEvent, NULL, NULL, NULL,
- "list changed event");
- no_sec_event("no event");
-
- ok_status(test_sec_event_deregister(), "deregister events.");
-
-
- ok(tests_end(1), "cleanup");
-}
-
-int main(int argc, char *const *argv)
-{
-#ifdef DEBUG
- int dont_skip = argc > 1 && !strcmp(argv[1], "-s");
- plan_tests(24);
-
- if (!tests_begin(argc, argv))
- BAIL_OUT("tests_begin failed");
-
- tests(dont_skip);
-#endif
- plan_tests(1);
- ok_leaks("no leaks");
-
- return 0;
-}