1/* 2 * Copyright (C) 2010 Google Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * * Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * * Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26#import "WebDeviceOrientationProviderMockInternal.h" 27 28#import "WebDeviceOrientationInternal.h" 29#import <wtf/PassOwnPtr.h> 30 31using namespace WebCore; 32 33@implementation WebDeviceOrientationProviderMockInternal 34 35- (id)init 36{ 37 self = [super init]; 38 if (!self) 39 return nil; 40 m_core = adoptPtr(new DeviceOrientationClientMock()); 41 return self; 42} 43 44- (void)setOrientation:(WebDeviceOrientation*)orientation 45{ 46 m_core->setOrientation(core(orientation)); 47} 48 49- (void)setController:(DeviceOrientationController*)controller 50{ 51 m_core->setController(controller); 52} 53 54- (void)startUpdating 55{ 56 m_core->startUpdating(); 57} 58 59- (void)stopUpdating 60{ 61 m_core->stopUpdating(); 62} 63 64- (WebDeviceOrientation*)lastOrientation 65{ 66 return [[[WebDeviceOrientation alloc] initWithCoreDeviceOrientation:m_core->lastOrientation()] autorelease]; 67} 68 69@end 70 71@implementation WebDeviceOrientationProviderMock (Internal) 72 73- (void)setController:(WebCore::DeviceOrientationController*)controller 74{ 75 [m_internal setController:controller]; 76} 77 78@end 79 80@implementation WebDeviceOrientationProviderMock 81 82+ (WebDeviceOrientationProviderMock *)shared 83{ 84 static WebDeviceOrientationProviderMock *provider = [[WebDeviceOrientationProviderMock alloc] init]; 85 return provider; 86} 87 88- (id)init 89{ 90 self = [super init]; 91 if (!self) 92 return nil; 93 m_internal = [[WebDeviceOrientationProviderMockInternal alloc] init]; 94 return self; 95} 96 97- (void)dealloc 98{ 99 [super dealloc]; 100 [m_internal release]; 101} 102 103- (void)setOrientation:(WebDeviceOrientation*)orientation 104{ 105 [m_internal setOrientation:orientation]; 106} 107 108- (void)startUpdating 109{ 110 [m_internal startUpdating]; 111} 112 113- (void)stopUpdating 114{ 115 [m_internal stopUpdating]; 116} 117 118- (WebDeviceOrientation*)lastOrientation 119{ 120 return [m_internal lastOrientation]; 121} 122 123@end 124