Changeset 92513 in webkit


Ignore:
Timestamp:
Aug 5, 2011 2:07:50 PM (13 years ago)
Author:
andersca@apple.com
Message:

Future proof an Objective-C test
https://bugs.webkit.org/show_bug.cgi?id=65788

Tools:

Reviewed by Dan Bernstein.

Add isObjectInstanceOf to ObjCController.

  • DumpRenderTree/mac/ObjCController.m:

(+[ObjCController isSelectorExcludedFromWebScript:]):
(+[ObjCController webScriptNameForSelector:]):
(-[ObjCController isObject:instanceOf:]):

LayoutTests:

Don't check explicitly for class names; just check that the objects are instances of the right classes.

  • platform/mac/fast/dom/wrapper-classes-objc-expected.txt:
  • platform/mac/fast/dom/wrapper-classes-objc.html:
Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r92502 r92513  
     12011-08-05  Anders Carlsson  <andersca@apple.com>
     2
     3        Future proof an Objective-C test
     4        https://bugs.webkit.org/show_bug.cgi?id=65788
     5
     6        Don't check explicitly for class names; just check that the objects are instances of the right classes.
     7
     8        * platform/mac/fast/dom/wrapper-classes-objc-expected.txt:
     9        * platform/mac/fast/dom/wrapper-classes-objc.html:
     10
    1112011-08-05  Anders Carlsson  <andersca@apple.com>
    212
  • trunk/LayoutTests/platform/mac/fast/dom/wrapper-classes-objc-expected.txt

    r76208 r92513  
    176176JavaScript types
    177177
    178 PASS objCWrapperClass(null) is 'nil'
    179 PASS objCWrapperClass(undefined) is 'WebUndefined'
    180 PASS objCWrapperClass(0) is 'NSCFNumber'
    181 PASS objCWrapperClass(1) is 'NSCFNumber'
    182 PASS objCWrapperClass(false) is 'NSCFBoolean'
    183 PASS objCWrapperClass(true) is 'NSCFBoolean'
    184 PASS objCWrapperClass('') is 'NSCFString'
    185 PASS objCWrapperClass({ }) is 'WebScriptObject'
    186 PASS objCWrapperClass([ ]) is 'WebScriptObject'
     178PASS objCWrapperIsInstanceOf(null, 'nil') is true
     179PASS objCWrapperIsInstanceOf(undefined, 'WebUndefined') is true
     180PASS objCWrapperIsInstanceOf(0, 'NSNumber') is true
     181PASS objCWrapperIsInstanceOf(1, 'NSNumber') is true
     182PASS objCWrapperIsInstanceOf(false, 'NSNumber') is true
     183PASS objCWrapperIsInstanceOf(true, 'NSNumber') is true
     184PASS objCWrapperIsInstanceOf('', 'NSString') is true
     185PASS objCWrapperIsInstanceOf({ }, 'WebScriptObject') is true
     186PASS objCWrapperIsInstanceOf([ ], 'WebScriptObject') is true
    187187PASS objCObjectOfClass('NSNull') is null
    188188PASS typeof objCObjectOfClass('') is 'undefined'
  • trunk/LayoutTests/platform/mac/fast/dom/wrapper-classes-objc.html

    r80456 r92513  
    1717if (window.layoutTestController)
    1818    layoutTestController.waitUntilDone();
     19
     20function objCWrapperIsInstanceOf(node, className)
     21{
     22    if (!window.objCController)
     23        return "only works under DumpRenderTree";
     24    return !!objCController.isObjectInstanceOf(node, className);
     25}
    1926
    2027function objCWrapperClass(node)
     
    266273    debug('');
    267274
    268     shouldBe("objCWrapperClass(null)", "'nil'");
    269     shouldBe("objCWrapperClass(undefined)", "'WebUndefined'");
    270     shouldBe("objCWrapperClass(0)", "'NSCFNumber'");
    271     shouldBe("objCWrapperClass(1)", "'NSCFNumber'");
    272     shouldBe("objCWrapperClass(false)", "'NSCFBoolean'");
    273     shouldBe("objCWrapperClass(true)", "'NSCFBoolean'");
    274     shouldBe("objCWrapperClass('')", "'NSCFString'");
    275     shouldBe("objCWrapperClass({ })", "'WebScriptObject'");
    276     shouldBe("objCWrapperClass([ ])", "'WebScriptObject'");
     275    shouldBeTrue("objCWrapperIsInstanceOf(null, 'nil')");
     276    shouldBeTrue("objCWrapperIsInstanceOf(undefined, 'WebUndefined')");
     277    shouldBeTrue("objCWrapperIsInstanceOf(0, 'NSNumber')");
     278    shouldBeTrue("objCWrapperIsInstanceOf(1, 'NSNumber')");
     279    shouldBeTrue("objCWrapperIsInstanceOf(false, 'NSNumber')");
     280    shouldBeTrue("objCWrapperIsInstanceOf(true, 'NSNumber')");
     281    shouldBeTrue("objCWrapperIsInstanceOf('', 'NSString')");
     282    shouldBeTrue("objCWrapperIsInstanceOf({ }, 'WebScriptObject')");
     283    shouldBeTrue("objCWrapperIsInstanceOf([ ], 'WebScriptObject')");
    277284
    278285    shouldBe("objCObjectOfClass('NSNull')", "null"); // can't test with typeof because typeof null is 'object'
  • trunk/Tools/ChangeLog

    r92497 r92513  
     12011-08-05  Anders Carlsson  <andersca@apple.com>
     2
     3        Future proof an Objective-C test
     4        https://bugs.webkit.org/show_bug.cgi?id=65788
     5
     6        Reviewed by Dan Bernstein.
     7
     8        Add isObjectInstanceOf to ObjCController.
     9
     10        * DumpRenderTree/mac/ObjCController.m:
     11        (+[ObjCController isSelectorExcludedFromWebScript:]):
     12        (+[ObjCController webScriptNameForSelector:]):
     13        (-[ObjCController isObject:instanceOf:]):
     14
    1152011-08-05  Adam Barth  <abarth@webkit.org>
    216
  • trunk/Tools/DumpRenderTree/mac/ObjCController.m

    r74733 r92513  
    6767    if (0
    6868            || aSelector == @selector(classNameOf:)
     69            || aSelector == @selector(isObject:instanceOf:)
    6970            || aSelector == @selector(objectOfClass:)
    7071            || aSelector == @selector(arrayOfString)
     
    8889    if (aSelector == @selector(classNameOf:))
    8990        return @"className";
     91    if (aSelector == @selector(isObject:instanceOf:))
     92        return @"isObjectInstanceOf";
    9093    if (aSelector == @selector(objectOfClass:))
    9194        return @"objectOfClass";
     
    114117}
    115118
     119- (BOOL)isObject:(id)object instanceOf:(NSString *)aClass
     120{
     121    if (!object)
     122        return [aClass isEqualToString:@"nil"];
     123
     124    return [object isKindOfClass:NSClassFromString(aClass)];
     125}
     126           
    116127- (NSString *)classNameOf:(id)object
    117128{
Note: See TracChangeset for help on using the changeset viewer.