aboutsummaryrefslogtreecommitdiff
path: root/AppKit/GTMNSWorkspace+RunningTest.m
diff options
context:
space:
mode:
authorGravatar thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2009-01-09 20:34:30 +0000
committerGravatar thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2009-01-09 20:34:30 +0000
commit4fd103b5de98d2f469b982677ea389e7ee7d64b3 (patch)
treed0eb379fdc78996bc2e201515d26c7521d1fc8dc /AppKit/GTMNSWorkspace+RunningTest.m
parent84d1232477f398339e48ea504c45048e9328ef9b (diff)
- turned off _debug framework support in tests since we now capture a lot more
in log validation. - Added GTM_SUPPORT_GC for controlling the inclusion of GC related code. - If you are using GTMUnitTestDevLog, it also tries to capture logs from NSAssert. - Added GTM_FOREACH_OBJECT/GTM_FOREACH_KEY that uses NSEnumerator and objectEnumerator/keyEnumerator on 10.4, but on 10.5+/iPhone uses FastEnumeration. - GTMNSWorkspace+Running gives a variety of ways of determining the attributes of running processes.
Diffstat (limited to 'AppKit/GTMNSWorkspace+RunningTest.m')
-rw-r--r--AppKit/GTMNSWorkspace+RunningTest.m78
1 files changed, 78 insertions, 0 deletions
diff --git a/AppKit/GTMNSWorkspace+RunningTest.m b/AppKit/GTMNSWorkspace+RunningTest.m
new file mode 100644
index 0000000..abd20a6
--- /dev/null
+++ b/AppKit/GTMNSWorkspace+RunningTest.m
@@ -0,0 +1,78 @@
+//
+// GTMNSWorkspace+RunningTest.m
+//
+// Copyright 2007-2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy
+// of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+//
+
+#import "GTMSenTestCase.h"
+#import "GTMNSWorkspace+Running.h"
+#import <unistd.h>
+
+@interface GTMNSWorkspace_RunningTest : GTMTestCase
+@end
+
+@implementation GTMNSWorkspace_RunningTest
+
+- (void)testBasics {
+ NSWorkspace *ws = [NSWorkspace sharedWorkspace];
+ STAssertTrue([ws gtm_isAppWithIdentifierRunning:@"com.apple.finder"], nil);
+ STAssertFalse([ws gtm_isAppWithIdentifierRunning:@"com.google.nothing"], nil);
+
+ NSDictionary *processInfo = [ws gtm_processInfoDictionary];
+ STAssertNotNil(processInfo, nil);
+
+ BOOL wasLaunchedAsLoginItem = [ws gtm_wasLaunchedAsLoginItem];
+ STAssertFalse(wasLaunchedAsLoginItem, nil);
+
+ pid_t pid = getpid();
+ NSDictionary *processInfo2 = [ws gtm_processInfoDictionaryForPID:pid];
+ STAssertNotNil(processInfo2, nil);
+ STAssertEqualObjects(processInfo, processInfo2, nil);
+
+ ProcessSerialNumber num = { 0, 0 };
+ BOOL gotPSN = [ws gtm_processSerialNumber:&num
+ withBundleID:@"com.apple.finder"];
+ STAssertTrue(gotPSN, nil);
+ STAssertGreaterThan(num.highLongOfPSN + num.lowLongOfPSN, (UInt32)0, nil);
+ gotPSN = [ws gtm_processSerialNumber:&num
+ withBundleID:@"bad.bundle.id"];
+ STAssertFalse(gotPSN, nil);
+
+ gotPSN = [ws gtm_processSerialNumber:NULL
+ withBundleID:nil];
+ STAssertFalse(gotPSN, nil);
+
+ processInfo = [ws gtm_processInfoDictionaryForActiveApp];
+ STAssertNotNil(processInfo, nil);
+
+ NSString *const keys[] = {
+ kGTMWorkspaceRunningPSN, kGTMWorkspaceRunningParentPSN,
+ kGTMWorkspaceRunningFlavor, kGTMWorkspaceRunningAttributes,
+ kGTMWorkspaceRunningFileType, kGTMWorkspaceRunningFileCreator,
+ kGTMWorkspaceRunningPID, kGTMWorkspaceRunningLSBackgroundOnly,
+ kGTMWorkspaceRunningLSUIElement, kGTMWorkspaceRunningIsHidden,
+ kGTMWorkspaceRunningCheckedIn, kGTMWorkspaceRunningBundleIdentifier,
+ kGTMWorkspaceRunningBundleVersion, kGTMWorkspaceRunningBundleName,
+ kGTMWorkspaceRunningLSUIPresentationMode, kGTMWorkspaceRunningBundlePath,
+ kGTMWorkspaceRunningBundleExecutable
+ };
+ for (size_t i = 0; i < sizeof(keys) / sizeof(NSString *); ++i) {
+ NSString *const key = keys[i];
+ STAssertNotNil([processInfo objectForKey:key],
+ @"Couldn't get %@ from %@", key, processInfo);
+ }
+}
+
+@end