⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 203426 in webkit


Ignore:
Timestamp:
Jul 19, 2016, 3:51:13 PM (10 years ago)
Author:
achristensen@apple.com
Message:

Add regression test for r203392
https://bugs.webkit.org/show_bug.cgi?id=159949

Reviewed by Brady Eidson.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db-shm: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db-wal: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm:

(TEST):
(fileSize):
(swizzledBundleIdentifierMobileSafari):
(swizzledBundleIdentifierWebBookmarksD):
(defaultApplicationCacheDirectory):

  • TestWebKitAPI/cocoa/InstanceMethodSwizzler.h: Copied from TestWebKitAPI/mac/InstanceMethodSwizzler.h.
  • TestWebKitAPI/cocoa/InstanceMethodSwizzler.mm: Copied from TestWebKitAPI/mac/InstanceMethodSwizzler.mm.
  • TestWebKitAPI/mac/InstanceMethodSwizzler.h: Removed.
  • TestWebKitAPI/mac/InstanceMethodSwizzler.mm: Removed.
Location:
trunk/Tools
Files:
3 added
3 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r203421 r203426  
     12016-07-19  Alex Christensen  <achristensen@webkit.org>
     2
     3        Add regression test for r203392
     4        https://bugs.webkit.org/show_bug.cgi?id=159949
     5
     6        Reviewed by Brady Eidson.
     7
     8        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     9        * TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db: Added.
     10        * TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db-shm: Added.
     11        * TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db-wal: Added.
     12        * TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm:
     13        (TEST):
     14        (fileSize):
     15        (swizzledBundleIdentifierMobileSafari):
     16        (swizzledBundleIdentifierWebBookmarksD):
     17        (defaultApplicationCacheDirectory):
     18        * TestWebKitAPI/cocoa/InstanceMethodSwizzler.h: Copied from TestWebKitAPI/mac/InstanceMethodSwizzler.h.
     19        * TestWebKitAPI/cocoa/InstanceMethodSwizzler.mm: Copied from TestWebKitAPI/mac/InstanceMethodSwizzler.mm.
     20        * TestWebKitAPI/mac/InstanceMethodSwizzler.h: Removed.
     21        * TestWebKitAPI/mac/InstanceMethodSwizzler.mm: Removed.
     22
    1232016-07-19  Keith Miller  <keith_miller@apple.com>
    224
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r203338 r203426  
    108108                57901FB11CAF142D00ED64F9 /* LoadInvalidURLRequest.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 57901FB01CAF141C00ED64F9 /* LoadInvalidURLRequest.html */; };
    109109                57F56A5C1C7F8CC100F31D7E /* IsNavigationActionTrusted.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 57F56A5B1C7F8A4000F31D7E /* IsNavigationActionTrusted.html */; };
     110                5C726D6F1D3EE06E00C5E1A1 /* InstanceMethodSwizzler.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C726D6E1D3EE06800C5E1A1 /* InstanceMethodSwizzler.mm */; };
     111                5C9E59411D3EB5AC00E3C62E /* ApplicationCache.db in Copy Resources */ = {isa = PBXBuildFile; fileRef = 5C9E593E1D3EB1DE00E3C62E /* ApplicationCache.db */; };
     112                5C9E59421D3EB5AC00E3C62E /* ApplicationCache.db-shm in Copy Resources */ = {isa = PBXBuildFile; fileRef = 5C9E593F1D3EB1DE00E3C62E /* ApplicationCache.db-shm */; };
     113                5C9E59431D3EB5AC00E3C62E /* ApplicationCache.db-wal in Copy Resources */ = {isa = PBXBuildFile; fileRef = 5C9E59401D3EB1DE00E3C62E /* ApplicationCache.db-wal */; };
    110114                764322D71B61CCC30024F801 /* WordBoundaryTypingAttributes.mm in Sources */ = {isa = PBXBuildFile; fileRef = 764322D51B61CCA40024F801 /* WordBoundaryTypingAttributes.mm */; };
    111115                7673499D1930C5BB00E44DF9 /* StopLoadingDuringDidFailProvisionalLoad_bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7673499A1930182E00E44DF9 /* StopLoadingDuringDidFailProvisionalLoad_bundle.cpp */; };
     
    204208                7CCB99211D3B41F6003922F6 /* UserInitiatedActionInNavigationAction.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7CCB99201D3B41F6003922F6 /* UserInitiatedActionInNavigationAction.mm */; };
    205209                7CCB99231D3B4A46003922F6 /* open-multiple-external-url.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 7CCB99221D3B44E7003922F6 /* open-multiple-external-url.html */; };
    206                 7CCE7EA41A4119F300447C4C /* InstanceMethodSwizzler.mm in Sources */ = {isa = PBXBuildFile; fileRef = C08587FF13FEC3A6001EF4E5 /* InstanceMethodSwizzler.mm */; };
    207210                7CCE7EA51A411A0800447C4C /* JavaScriptTestMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = C081224013FC172400DC39AE /* JavaScriptTestMac.mm */; };
    208211                7CCE7EA61A411A0F00447C4C /* PlatformUtilitiesMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC131884117114B600B69727 /* PlatformUtilitiesMac.mm */; };
     
    489492                        dstSubfolderSpec = 7;
    490493                        files = (
     494                                5C9E59411D3EB5AC00E3C62E /* ApplicationCache.db in Copy Resources */,
     495                                5C9E59421D3EB5AC00E3C62E /* ApplicationCache.db-shm in Copy Resources */,
     496                                5C9E59431D3EB5AC00E3C62E /* ApplicationCache.db-wal in Copy Resources */,
    491497                                7CCB99231D3B4A46003922F6 /* open-multiple-external-url.html in Copy Resources */,
    492498                                932AE53D1D371047005DFFAF /* focus-inputs.html in Copy Resources */,
     
    784790                57F56A5B1C7F8A4000F31D7E /* IsNavigationActionTrusted.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = IsNavigationActionTrusted.html; sourceTree = "<group>"; };
    785791                5C5E633D1D0B67940085A025 /* UniqueRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UniqueRef.cpp; sourceTree = "<group>"; };
     792                5C726D6D1D3EE06800C5E1A1 /* InstanceMethodSwizzler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InstanceMethodSwizzler.h; path = cocoa/InstanceMethodSwizzler.h; sourceTree = "<group>"; };
     793                5C726D6E1D3EE06800C5E1A1 /* InstanceMethodSwizzler.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = InstanceMethodSwizzler.mm; path = cocoa/InstanceMethodSwizzler.mm; sourceTree = "<group>"; };
     794                5C9E593E1D3EB1DE00E3C62E /* ApplicationCache.db */ = {isa = PBXFileReference; lastKnownFileType = file; path = ApplicationCache.db; sourceTree = "<group>"; };
     795                5C9E593F1D3EB1DE00E3C62E /* ApplicationCache.db-shm */ = {isa = PBXFileReference; lastKnownFileType = file; path = "ApplicationCache.db-shm"; sourceTree = "<group>"; };
     796                5C9E59401D3EB1DE00E3C62E /* ApplicationCache.db-wal */ = {isa = PBXFileReference; lastKnownFileType = file; path = "ApplicationCache.db-wal"; sourceTree = "<group>"; };
    786797                7560917719259C59009EF06E /* MemoryCacheAddImageToCacheIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MemoryCacheAddImageToCacheIOS.mm; sourceTree = "<group>"; };
    787798                75F3133F18C171B70041CAEC /* EphemeralSessionPushStateNoHistoryCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EphemeralSessionPushStateNoHistoryCallback.cpp; sourceTree = "<group>"; };
     
    975986                C08587BE13FE956C001EF4E5 /* WebKitAgnosticTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKitAgnosticTest.h; sourceTree = "<group>"; };
    976987                C08587FB13FEC39B001EF4E5 /* InstanceMethodSwizzler.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = InstanceMethodSwizzler.mm; sourceTree = "<group>"; };
    977                 C08587FE13FEC3A6001EF4E5 /* InstanceMethodSwizzler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InstanceMethodSwizzler.h; sourceTree = "<group>"; };
    978                 C08587FF13FEC3A6001EF4E5 /* InstanceMethodSwizzler.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = InstanceMethodSwizzler.mm; sourceTree = "<group>"; };
    979988                C0991C50143C7D68007998F2 /* RetainPtrHashing.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RetainPtrHashing.cpp; sourceTree = "<group>"; };
    980989                C0ADBE7A12FCA4D000D2C129 /* JavaScriptTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JavaScriptTest.cpp; sourceTree = "<group>"; };
     
    11471156                        isa = PBXGroup;
    11481157                        children = (
     1158                                5C726D6D1D3EE06800C5E1A1 /* InstanceMethodSwizzler.h */,
     1159                                5C726D6E1D3EE06800C5E1A1 /* InstanceMethodSwizzler.mm */,
    11491160                                A13EBB441B87332B00097110 /* WebProcessPlugIn */,
    11501161                                0F139E721A423A2B00F590F5 /* PlatformUtilitiesCocoa.mm */,
     
    13051316                        isa = PBXGroup;
    13061317                        children = (
     1318                                5C9E593E1D3EB1DE00E3C62E /* ApplicationCache.db */,
     1319                                5C9E593F1D3EB1DE00E3C62E /* ApplicationCache.db-shm */,
     1320                                5C9E59401D3EB1DE00E3C62E /* ApplicationCache.db-wal */,
    13071321                                93CFA8661CEB9DE1000565A8 /* autofocused-text-input.html */,
    13081322                                A16F66B91C40EA2000BD4D24 /* ContentFiltering.html */,
     
    16191633                        children = (
    16201634                                1AEDE22413E5E7A000E62FE8 /* InjectedBundleControllerMac.mm */,
    1621                                 C08587FE13FEC3A6001EF4E5 /* InstanceMethodSwizzler.h */,
    1622                                 C08587FF13FEC3A6001EF4E5 /* InstanceMethodSwizzler.mm */,
    16231635                                C081224013FC172400DC39AE /* JavaScriptTestMac.mm */,
    16241636                                2E7765CE16C4D81100BA2BB1 /* mainMac.mm */,
     
    21382150                                7CCE7EFD1A411AE600447C4C /* InjectedBundleInitializationUserDataCallbackWins.cpp in Sources */,
    21392151                                7CCE7EC31A411A7E00447C4C /* InspectorBar.mm in Sources */,
    2140                                 7CCE7EA41A4119F300447C4C /* InstanceMethodSwizzler.mm in Sources */,
    21412152                                7CCE7EDA1A411A8700447C4C /* InstanceMethodSwizzler.mm in Sources */,
    21422153                                7C54A4BE1AA11CCA00380F78 /* WKBundleFileHandle.cpp in Sources */,
     
    21782189                                7CCE7F0A1A411AE600447C4C /* PasteboardNotifications.mm in Sources */,
    21792190                                7C83E0BB1D0A650000FEBCF3 /* FindInPage.mm in Sources */,
     2191                                5C726D6F1D3EE06E00C5E1A1 /* InstanceMethodSwizzler.mm in Sources */,
    21802192                                7CCE7EAF1A411A3800447C4C /* PlatformUtilities.cpp in Sources */,
    21812193                                0F139E781A423A6B00F590F5 /* PlatformUtilitiesCocoa.mm in Sources */,
  • trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm

    r202984 r203426  
    2626#import "config.h"
    2727
     28#import "InstanceMethodSwizzler.h"
    2829#import "PlatformUtilities.h"
    2930#import "Test.h"
     
    9091}
    9192
     93static long long fileSize(NSURL* url)
     94{
     95    NSError *error = nil;
     96    NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:url.path error:&error];
     97    if (error)
     98        return -1;
     99    return [[fileAttributes objectForKey:NSFileSize] longLongValue];
     100}
     101
     102NSString *swizzledBundleIdentifierMobileSafari()
     103{
     104    return @"com.apple.mobilesafari";
     105}
     106
     107NSString *swizzledBundleIdentifierWebBookmarksD()
     108{
     109    return @"com.apple.webbookmarksd";
     110}
     111
     112NSString *defaultApplicationCacheDirectory()
     113{
     114    return @"~/Library/Caches/TestWebKitAPI/WebKit/OfflineWebApplicationCache";
     115}
     116
     117TEST(WKWebView, ClearAppCache)
     118{
     119    {
     120        NSURL *dbResourceURL = [[NSBundle mainBundle] URLForResource:@"ApplicationCache" withExtension:@"db" subdirectory:@"TestWebKitAPI.resources"];
     121        NSURL *shmResourceURL = [[NSBundle mainBundle] URLForResource:@"ApplicationCache" withExtension:@"db-shm" subdirectory:@"TestWebKitAPI.resources"];
     122        NSURL *walResourceURL = [[NSBundle mainBundle] URLForResource:@"ApplicationCache" withExtension:@"db-wal" subdirectory:@"TestWebKitAPI.resources"];
     123       
     124        NSURL *targetURL = [NSURL fileURLWithPath:[defaultApplicationCacheDirectory() stringByExpandingTildeInPath]];
     125        [[NSFileManager defaultManager] createDirectoryAtURL:targetURL withIntermediateDirectories:YES attributes:nil error:nil];
     126       
     127        NSURL *dbTargetURL = [targetURL URLByAppendingPathComponent:@"ApplicationCache.db"];
     128        NSURL *walTargetURL = [targetURL URLByAppendingPathComponent:@"ApplicationCache.db-wal"];
     129        NSURL *shmTargetURL = [targetURL URLByAppendingPathComponent:@"ApplicationCache.db-shm"];
     130
     131        // Clean up any files that may have been left from this test failing before.
     132        [[NSFileManager defaultManager] removeItemAtURL:dbTargetURL error:nil];
     133        [[NSFileManager defaultManager] removeItemAtURL:walTargetURL error:nil];
     134        [[NSFileManager defaultManager] removeItemAtURL:shmTargetURL error:nil];
     135        EXPECT_EQ(fileSize(dbTargetURL), -1);
     136        EXPECT_EQ(fileSize(walTargetURL), -1);
     137        EXPECT_EQ(fileSize(shmTargetURL), -1);
     138       
     139        // Copy the resources from the bundle to ~/Library/...
     140        [[NSFileManager defaultManager] copyItemAtURL:dbResourceURL toURL:dbTargetURL error:nil];
     141        [[NSFileManager defaultManager] copyItemAtURL:shmResourceURL toURL:shmTargetURL error:nil];
     142        [[NSFileManager defaultManager] copyItemAtURL:walResourceURL toURL:walTargetURL error:nil];
     143        EXPECT_GT(fileSize(dbTargetURL), 0);
     144        EXPECT_GT(fileSize(shmTargetURL), 0);
     145        EXPECT_GT(fileSize(walTargetURL), 0);
     146
     147        // Make sure there is a record in the WKWebsiteDataStore.
     148        readyToContinue = false;
     149        [[WKWebsiteDataStore defaultDataStore] fetchDataRecordsOfTypes:[WKWebsiteDataStore allWebsiteDataTypes] completionHandler:^(NSArray<WKWebsiteDataRecord *> *websiteDataRecords)
     150        {
     151            EXPECT_EQ(websiteDataRecords.count, 1ul);
     152            readyToContinue = true;
     153        }];
     154        TestWebKitAPI::Util::run(&readyToContinue);
     155    }
     156
     157    readyToContinue = false;
     158    [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:[WKWebsiteDataStore allWebsiteDataTypes] modifiedSince:[NSDate distantPast] completionHandler:^()
     159    {
     160        NSURL *targetURL = [NSURL fileURLWithPath:[defaultApplicationCacheDirectory() stringByExpandingTildeInPath]];
     161        NSURL *walTargetURL = [targetURL URLByAppendingPathComponent:@"ApplicationCache.db-wal"];
     162       
     163        // Make sure there is no record in the WKWebsiteDataStore.
     164        EXPECT_EQ(fileSize(walTargetURL), 0);
     165        [[WKWebsiteDataStore defaultDataStore] fetchDataRecordsOfTypes:[WKWebsiteDataStore allWebsiteDataTypes] completionHandler:^(NSArray<WKWebsiteDataRecord *> *websiteDataRecords)
     166        {
     167            EXPECT_EQ(websiteDataRecords.count, 0ul);
     168            readyToContinue = true;
     169        }];
     170    }];
     171    TestWebKitAPI::Util::run(&readyToContinue);
     172}
    92173#endif
Note: See TracChangeset for help on using the changeset viewer.