TestProperty.m   [plain text]


//
//  TestProperty.m
//  IOHIDFamily
//
//  Created by dekom on 2/21/17.
//
//

#import <XCTest/XCTest.h>
#include "IOHIDUnitTestUtility.h"
#import <Foundation/Foundation.h>
#include <IOKit/hid/IOHIDEventSystemClient.h>

@interface TestProperty : XCTestCase

@property   IOHIDEventSystemClientRef   client;

@end

@implementation TestProperty

- (void)setUp {
    self.client = IOHIDEventSystemClientCreateSimpleClient(kCFAllocatorDefault);
    HIDXCTAssertAndThrowTrue(self.client != NULL);
}

- (void)tearDown {
    CFRelease(self.client);
    [super tearDown];
}

- (void)testIdleTimeProperty {
    CFNumberRef property = (CFNumberRef)IOHIDEventSystemClientCopyProperty(self.client, CFSTR(kIOHIDIdleTimeMicrosecondsKey));
    HIDXCTAssertAndThrowTrue(property != NULL);
    
    uint64_t val = 0;
    CFNumberGetValue(property, kCFNumberSInt64Type, &val);
    XCTAssert(val != 0);
    
    sleep(1);
    property = (CFNumberRef)IOHIDEventSystemClientCopyProperty(self.client, CFSTR(kIOHIDIdleTimeMicrosecondsKey));
    HIDXCTAssertAndThrowTrue(property != NULL);
    
    uint64_t newVal = 0;
    CFNumberGetValue(property, kCFNumberSInt64Type, &newVal);
    XCTAssert(newVal != 0);
    XCTAssert(newVal != val);
}


@end