12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231 |
- //
- // Owncloud_iOs_ClientTests.m
- // Owncloud iOs ClientTests
- //
- // Copyright (C) 2016, ownCloud GmbH. ( http://www.owncloud.org/ )
- //
- // Permission is hereby granted, free of charge, to any person obtaining a copy
- // of this software and associated documentation files (the "Software"), to deal
- // in the Software without restriction, including without limitation the rights
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- // copies of the Software, and to permit persons to whom the Software is
- // furnished to do so, subject to the following conditions:
- // The above copyright notice and this permission notice shall be included in
- // all copies or substantial portions of the Software.
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- // THE SOFTWARE.
- //
- #import "OCCommunicationLibTests.h"
- #import "ConfigTests.h"
- #import "OCCommunication.h"
- #import "OCFrameworkConstants.h"
- #import "OCFileDto.h"
- #import "OCSharedDto.h"
- #import "ConfigTests.h"
- #import "AFURLSessionManager.h"
- #import "OCConstants.h"
- #import <UIKit/UIKit.h>
- /*
- * With this implementation we allow the connection with any HTTPS server
- */
- #if DEBUG
- @implementation NSURLRequest (NSURLRequestWithIgnoreSSL)
- + (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host {
- return YES;
- }
- @end
- #endif
- @implementation OCCommunicationLibTests
- //You must enter this information of your server in order that the unit test works
- ///-----------------------------------
- /// @name setUp
- ///-----------------------------------
- /**
- * Method to get ready the tests
- */
- - (void)setUp
- {
- [super setUp];
-
- _sharedOCCommunication = [[OCCommunication alloc] init];
- [_sharedOCCommunication setCredentialsWithUser:k_user andPassword:k_password];
- [_sharedOCCommunication setSecurityPolicyManagers:[_sharedOCCommunication createSecurityPolicy]];
-
- //Create Tests folder
- [self createFolderWithName:k_path_test_folder];
-
- }
- - (void)tearDown
- {
-
- //Delete Test folder
- [self deleteFolderWithName:k_path_test_folder];
-
- [super tearDown];
-
- }
- #pragma mark - Util Methods to Set Up the Tests
- ///-----------------------------------
- /// @name Create Folder With Name
- ///-----------------------------------
- /**
- * This method create a new folder with the name passed in the server
- *
- * @param NSString -> path
- */
- - (void) createFolderWithName:(NSString*)path{
-
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- NSString *folder = [NSString stringWithFormat:@"%@%@",k_webdav_base_url,path];
- folder = [folder stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- [_sharedOCCommunication createFolder:folder onCommunication:_sharedOCCommunication withForbiddenCharactersSupported:NO successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
- //Folder created
- NSLog(@"Folder created");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- NSLog(@"Error created folder");
- // Signal that block has completed
- dispatch_semaphore_signal(semaphore);
- } errorBeforeRequest:^(NSError *error) {
- NSLog(@"Error created folder");
- // Signal that block has completed
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name Delete folder With Name
- ///-----------------------------------
- /**
- * This method delete a folder with the name passed
- *
- * @param NSString -> path
- */
- - (void) deleteFolderWithName:(NSString *)path{
-
- NSString *folder = [NSString stringWithFormat:@"%@%@",k_webdav_base_url,path];
- folder = [folder stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication deleteFileOrFolder:folder onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse * response, NSString *redirectedServer) {
- //Folder deleted
- NSLog(@"Folder deleted");
- dispatch_semaphore_signal(semaphore);
- } failureRquest:^(NSURLResponse * response, NSError * error, NSString *redirectedServer) {
- //Error
- NSLog(@"Error deleted folder");
- // Signal that block has completed
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:10]];
-
- }
- ///-----------------------------------
- /// @name Upload File
- ///-----------------------------------
- /**
- * This method upload a file from local path to remote path
- *
- * @param NSString -> localPath
- *
- * @param NSString -> remotePath
- */
- - (void) uploadFilePath:(NSString*)localPath inRemotePath:(NSString*)remotePath{
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //Create the complete url
- NSString *serverUrl = [NSString stringWithFormat:@"%@%@",k_webdav_base_url,remotePath];
-
- //Path of server file file
- remotePath = [remotePath stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
-
- NSURLSessionUploadTask *uploadTask = nil;
-
- uploadTask = [_sharedOCCommunication uploadFileSession:localPath toDestiny:serverUrl onCommunication:_sharedOCCommunication progress:^(NSProgress *progress) {
- NSLog(@"File: %lld bytes", progress.completedUnitCount);
- } successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
- NSLog(@"File: %@ uploaded", localPath);
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSString *redirectedServer, NSError *error) {
- NSLog(@"Failed uploading: %@", localPath);
- NSLog(@"Error uploading");
- dispatch_semaphore_signal(semaphore);
- } failureBeforeRequest:^(NSError *error) {
- NSLog(@"File that do not exist does not upload");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
- }
- #pragma mark - Tests
- ///-----------------------------------
- /// @name testCreateFolder
- ///-----------------------------------
- /**
- * Method to test if we can create a folder
- */
- - (void)testCreateFolder
- {
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- NSString *folder = [NSString stringWithFormat:@"%@%@/%@",k_webdav_base_url,k_path_test_folder,[NSString stringWithFormat:@"%f", [NSDate timeIntervalSinceReferenceDate]]];
-
- [_sharedOCCommunication createFolder:folder onCommunication:_sharedOCCommunication withForbiddenCharactersSupported:NO successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
- //Folder created
- NSLog(@"Folder created");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error testCreateFolder failureRequest");
- // Signal that block has completed
- dispatch_semaphore_signal(semaphore);
- } errorBeforeRequest:^(NSError *error) {
- XCTFail(@"Error testCreateFolder beforeRequest");
- // Signal that block has completed
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name testCreateFolderWithForbiddenCharacters
- ///-----------------------------------
- /**
- * Method to check if we check the forbidden characters when we try to create a folder
- *
- * @warning The special characters are: "\","<",">",":",""","|","?","*"
- */
- - (void)testCreateFolderWithForbiddenCharacters {
- NSArray* arrayForbiddenCharacters = [NSArray arrayWithObjects:@"\\",@"<",@">",@":",@"\"",@"|",@"?",@"*", nil];
-
- for (NSString *currentCharacter in arrayForbiddenCharacters) {
- NSString *folder = [NSString stringWithFormat:@"%@%@/%@",k_webdav_base_url,k_path_test_folder,[NSString stringWithFormat:@"%f%@-folder", [NSDate timeIntervalSinceReferenceDate], currentCharacter]];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication createFolder:folder onCommunication:_sharedOCCommunication withForbiddenCharactersSupported:NO successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
- //Folder created
- NSLog(@"Folder created");
- XCTFail(@"Error testCreateFolderWithSpecialCharacters problem on: %@", currentCharacter);
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error testCreateFolderWithSpecialCharacters problem on: %@", currentCharacter);
- // Signal that block has completed
- dispatch_semaphore_signal(semaphore);
- } errorBeforeRequest:^(NSError *error) {
- NSLog(@"Forbbiden character detected: %@", currentCharacter);
- // Signal that block has completed
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- }
- ///-----------------------------------
- /// @name testMoveFileOnSameFolder
- ///-----------------------------------
- /**
- * Method to test move file on the same folder
- */
- - (void)testMoveFileOnSameFolder {
-
- //Create Folder A for the Test
- NSString *testPath = [NSString stringWithFormat:@"%@/Folder A", k_path_test_folder];
- [self createFolderWithName:testPath];
-
- //Upload file /Tests/Folder A/test.jpeg
- NSString *bundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"test" ofType:@"jpeg"];
- NSString *remotePath = [NSString stringWithFormat:@"%@/Folder A/Test.jpg", k_path_test_folder];
- [self uploadFilePath:bundlePath inRemotePath:remotePath];
-
- NSString *origin = [NSString stringWithFormat:@"%@%@/Folder A/Test.jpeg", k_webdav_base_url, k_path_test_folder];
- NSString *destiny = [NSString stringWithFormat:@"%@%@/Folder A/Test.jpeg", k_webdav_base_url, k_path_test_folder];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication moveFileOrFolder:origin toDestiny:destiny onCommunication:_sharedOCCommunication withForbiddenCharactersSupported:NO successRequest:^(NSURLResponse *response, NSString *redirectServer) {
- XCTFail(@"File Moved on the same folder");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error moving file on the same folder and Error");
- dispatch_semaphore_signal(semaphore);
- } errorBeforeRequest:^(NSError *error) {
- if (error.code == OCErrorMovingTheDestinyAndOriginAreTheSame) {
- NSLog(@"File on the same folder not moved");
- } else {
- XCTFail(@"Error moving file on same folder");
- }
-
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name testMoveFile
- ///-----------------------------------
- /**
- * Method to try move a file
- */
- - (void)testMoveFile {
-
- //Create Folder A for the Test
- NSString *testPathA = [NSString stringWithFormat:@"%@/Folder A", k_path_test_folder];
- [self createFolderWithName:testPathA];
-
- //Create Folder B for the Test
- NSString *testPathB = [NSString stringWithFormat:@"%@/Folder B", k_path_test_folder];
- [self createFolderWithName:testPathB];
-
- //Upload file /Tests/Folder A/test.jpeg
- NSString *bundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"test" ofType:@"jpeg"];
- NSString *uploadPath = [NSString stringWithFormat:@"%@/Folder A/Test.jpeg", k_path_test_folder];
- [self uploadFilePath:bundlePath inRemotePath:uploadPath];
-
-
- NSString *origin = [NSString stringWithFormat:@"%@%@/Folder A/Test.jpeg", k_webdav_base_url, k_path_test_folder];
- NSString *destiny = [NSString stringWithFormat:@"%@%@/Folder B/Test.jpeg", k_webdav_base_url, k_path_test_folder];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication moveFileOrFolder:origin toDestiny:destiny onCommunication:_sharedOCCommunication withForbiddenCharactersSupported:NO successRequest:^(NSURLResponse *response, NSString *redirectServer) {
- NSLog(@"File moved");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error moving file and Error");
- dispatch_semaphore_signal(semaphore);
- } errorBeforeRequest:^(NSError *error) {
- XCTFail(@"Error moving file");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name testMoveFileForbiddenCharacters
- ///-----------------------------------
- /**
- * Method to try to move a file with destiny name have forbidden characters
- */
- - (void)testMoveFileForbiddenCharacters {
-
- //Create Folder A for the Test
- NSString *testPathA = [NSString stringWithFormat:@"%@/Folder A", k_path_test_folder];
- [self createFolderWithName:testPathA];
-
- //Create Folder C for the Test
- NSString *testPathC = [NSString stringWithFormat:@"%@/Folder C", k_path_test_folder];
- [self createFolderWithName:testPathC];
-
- //Upload file /Tests/Folder A/test.jpeg
- NSString *bundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"test" ofType:@"jpeg"];
- NSString *uploadPath = [NSString stringWithFormat:@"%@/Folder A/Test.jpeg", k_path_test_folder];
- [self uploadFilePath:bundlePath inRemotePath:uploadPath];
-
-
- NSArray *arrayForbiddenCharacters = [NSArray arrayWithObjects:@"\\",@"<",@">",@":",@"\"",@"|",@"?",@"*", nil];
-
- for (NSString *currentCharacter in arrayForbiddenCharacters) {
- NSString *origin = [NSString stringWithFormat:@"%@%@/Folder A/Test.jpeg", k_webdav_base_url, k_path_test_folder];
- NSString *destiny = [NSString stringWithFormat:@"%@%@/Folder C/Test%@.jpeg", k_webdav_base_url,k_path_test_folder, currentCharacter];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication moveFileOrFolder:origin toDestiny:destiny onCommunication:_sharedOCCommunication withForbiddenCharactersSupported:NO successRequest:^(NSURLResponse *response, NSString *redirectServer) {
- XCTFail(@"File Moved and renamed");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error moving file and renamed and Error");
- dispatch_semaphore_signal(semaphore);
- } errorBeforeRequest:^(NSError *error) {
- if (error.code == OCErrorMovingDestinyNameHaveForbiddenCharacters) {
- NSLog(@"File with forbidden characters not moved");
- } else {
- XCTFail(@"Error moving and renaming file");
- }
-
- dispatch_semaphore_signal(semaphore);
- }];
-
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- }
- ///-----------------------------------
- /// @name testMoveFolderInsideHimself
- ///-----------------------------------
- /**
- * Method to try to move a folder inside himself
- */
- - (void)testMoveFolderInsideHimself {
-
- //Create Folder A for the Test
- NSString *testPathA = [NSString stringWithFormat:@"%@/Folder A", k_path_test_folder];
- [self createFolderWithName:testPathA];
- NSString *origin = [NSString stringWithFormat:@"%@%@/Folder A/", k_webdav_base_url, k_path_test_folder];
- NSString *destiny = [NSString stringWithFormat:@"%@%@/Folder A/Folder A/", k_webdav_base_url, k_path_test_folder];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication moveFileOrFolder:origin toDestiny:destiny onCommunication:_sharedOCCommunication withForbiddenCharactersSupported:NO successRequest:^(NSURLResponse *response, NSString *redirectServer) {
- XCTFail(@"Folder Moved inside himself");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error moving folder inside himself and Error");
- dispatch_semaphore_signal(semaphore);
- } errorBeforeRequest:^(NSError *error) {
- if (error.code == OCErrorMovingFolderInsideHimself) {
- NSLog(@"File renamed not moved");
- } else {
- XCTFail(@"Error moving folder inside himself");
- }
-
- dispatch_semaphore_signal(semaphore);
- }];
-
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name testMoveFolder
- ///-----------------------------------
- /**
- * Method to try to move a folder
- */
- - (void)testMoveFolder {
-
- //Create Folder A for the Test
- NSString *testPathA = [NSString stringWithFormat:@"%@/Folder A", k_path_test_folder];
- [self createFolderWithName:testPathA];
-
- //Create Folder C for the Test
- NSString *testPathB = [NSString stringWithFormat:@"%@/Folder B", k_path_test_folder];
- [self createFolderWithName:testPathB];
-
- NSString *origin = [NSString stringWithFormat:@"%@%@/Folder A/", k_webdav_base_url, k_path_test_folder];
- NSString *destiny = [NSString stringWithFormat:@"%@%@/Folder B/Folder A/", k_webdav_base_url, k_path_test_folder];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication moveFileOrFolder:origin toDestiny:destiny onCommunication:_sharedOCCommunication withForbiddenCharactersSupported:NO successRequest:^(NSURLResponse *response, NSString *redirectServer) {
- NSLog(@"Folder Moved");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error moving folder and Error");
- dispatch_semaphore_signal(semaphore);
- } errorBeforeRequest:^(NSError *error) {
- XCTFail(@"Error moving folder");
- dispatch_semaphore_signal(semaphore);
- }];
-
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name testRenameFileWithForbiddenCharacters
- ///-----------------------------------
- /**
- * Method try to rename a file with forbidden characters
- *
- */
- - (void)testRenameFileWithForbiddenCharacters {
-
- //Create Folder B for the Test
- NSString *testPathB = [NSString stringWithFormat:@"%@/Folder B", k_path_test_folder];
- [self createFolderWithName:testPathB];
-
- //Upload file /Tests/Folder B/test.jpeg
- NSString *bundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"test" ofType:@"jpeg"];
- NSString *uploadPath = [NSString stringWithFormat:@"%@/Folder B/Test.jpeg", k_path_test_folder];
- [self uploadFilePath:bundlePath inRemotePath:uploadPath];
- NSArray *arrayForbiddenCharacters = [NSArray arrayWithObjects:@"\\",@"<",@">",@":",@"\"",@"|",@"?",@"*", nil];
-
- for (NSString *currentCharacter in arrayForbiddenCharacters) {
-
- NSString *origin = [NSString stringWithFormat:@"%@%@/Folder B/Test.jpeg", k_webdav_base_url, k_path_test_folder];
- NSString *destiny = [NSString stringWithFormat:@"%@%@/Folder B/Test-%@.jpeg", k_webdav_base_url, k_path_test_folder, currentCharacter];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication moveFileOrFolder:origin toDestiny:destiny onCommunication:_sharedOCCommunication withForbiddenCharactersSupported:NO successRequest:^(NSURLResponse *response, NSString *redirectServer) {
- XCTFail(@"File renamed with forbidden characters");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error renaming file with forbidden characters and Error");
- dispatch_semaphore_signal(semaphore);
- } errorBeforeRequest:^(NSError *error) {
- if (error.code == OCErrorMovingDestinyNameHaveForbiddenCharacters) {
- NSLog(@"File not renamed with forbidden characters");
- dispatch_semaphore_signal(semaphore);
- } else {
- XCTFail(@"Error renaming file with forbidden characters");
- dispatch_semaphore_signal(semaphore);
- }
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- }
- ///-----------------------------------
- /// @name testRenameFile
- ///-----------------------------------
- /**
- * Method try to rename a file
- *
- */
- - (void)testRenameFile {
-
- //Create Folder B for the Test
- NSString *testPathB = [NSString stringWithFormat:@"%@/Folder B", k_path_test_folder];
- [self createFolderWithName:testPathB];
-
- //Upload file /Tests/Folder B/test.jpeg
- NSString *bundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"test" ofType:@"jpeg"];
- NSString *uploadPath = [NSString stringWithFormat:@"%@/Folder B/Test.jpeg", k_path_test_folder];
- [self uploadFilePath:bundlePath inRemotePath:uploadPath];
- NSString *origin = [NSString stringWithFormat:@"%@%@/Folder B/Test.jpeg", k_webdav_base_url, k_path_test_folder];
- NSString *destiny = [NSString stringWithFormat:@"%@%@/Folder B/Test Renamed.jpeg", k_webdav_base_url, k_path_test_folder];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication moveFileOrFolder:origin toDestiny:destiny onCommunication:_sharedOCCommunication withForbiddenCharactersSupported:NO successRequest:^(NSURLResponse *response, NSString *redirectServer) {
- NSLog(@"File Renamed");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error renaming file and Error");
- dispatch_semaphore_signal(semaphore);
- } errorBeforeRequest:^(NSError *error) {
- XCTFail(@"Error renaming file");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name testRenameFolderWithForbiddenCharacters
- ///-----------------------------------
- /**
- * Method try to rename a folder with forbidden characters
- *
- */
- - (void)testRenameFolderWithForbiddenCharacters {
-
- //Create Folder A for the Test
- NSString *testPathB = [NSString stringWithFormat:@"%@/Folder B", k_path_test_folder];
- [self createFolderWithName:testPathB];
-
- NSArray *arrayForbiddenCharacters = [NSArray arrayWithObjects:@"\\",@"<",@">",@":",@"\"",@"|",@"?",@"*", nil];
-
- for (NSString *currentCharacter in arrayForbiddenCharacters) {
- NSString *origin = [NSString stringWithFormat:@"%@%@/Folder B/", k_webdav_base_url, k_path_test_folder];
- NSString *destiny = [NSString stringWithFormat:@"%@%@/Folder B-%@/", k_webdav_base_url, k_path_test_folder, currentCharacter];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication moveFileOrFolder:origin toDestiny:destiny onCommunication:_sharedOCCommunication withForbiddenCharactersSupported:NO successRequest:^(NSURLResponse *response, NSString *redirectServer) {
- XCTFail(@"Folder renamed with forbidden characters");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error renaming folder with forbidden characters and Error");
- dispatch_semaphore_signal(semaphore);
- } errorBeforeRequest:^(NSError *error) {
- if (error.code == OCErrorMovingDestinyNameHaveForbiddenCharacters) {
- NSLog(@"Folder not renamed with forbidden characters");
- dispatch_semaphore_signal(semaphore);
- } else {
- XCTFail(@"Error renaming folder with forbidden characters");
- dispatch_semaphore_signal(semaphore);
- }
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- }
- ///-----------------------------------
- /// @name testRenameFolder
- ///-----------------------------------
- /**
- * Method try to rename a folder
- *
- */
- - (void)testRenameFolder {
-
- //Create Folder A for the Test
- NSString *testPathB = [NSString stringWithFormat:@"%@/Folder B", k_path_test_folder];
- [self createFolderWithName:testPathB];
-
- NSString *origin = [NSString stringWithFormat:@"%@%@/Folder B/", k_webdav_base_url, k_path_test_folder];
- NSString *destiny = [NSString stringWithFormat:@"%@%@/Folder B Renamed/", k_webdav_base_url, k_path_test_folder];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication moveFileOrFolder:origin toDestiny:destiny onCommunication:_sharedOCCommunication withForbiddenCharactersSupported:NO successRequest:^(NSURLResponse *response, NSString *redirectServer) {
- NSLog(@"Folder Renamed");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error renaming folder and Error");
- dispatch_semaphore_signal(semaphore);
- } errorBeforeRequest:^(NSError *error) {
- XCTFail(@"Error renaming folder");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name testToDeleteAFolder
- ///-----------------------------------
- /**
- * Method to test if we can create a folder
- */
- - (void)testDeleteAFolder
- {
- //Create Tests/DeleteFolder
- NSString *testPathDelete = [NSString stringWithFormat:@"%@/DeleteFolder", k_path_test_folder];
- [self createFolderWithName:testPathDelete];
-
- NSString *folder = [NSString stringWithFormat:@"%@%@/DeleteFolder", k_webdav_base_url, k_path_test_folder];
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
-
- [_sharedOCCommunication deleteFileOrFolder:folder onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse * response, NSString *redirectedServer) {
- //Folder deleted
- NSLog(@"Folder deleted");
- dispatch_semaphore_signal(semaphore);
- } failureRquest:^(NSURLResponse * response, NSError * error, NSString *redirectedServer) {
- //Error
- XCTFail(@"Error testDeleteFolder");
- // Signal that block has completed
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:10]];
- }
- ///-----------------------------------
- /// @name test to Delete a File
- ///-----------------------------------
- /**
- * Method to test if we can delete a folder
- */
- - (void)testDeleteFile
- {
- //Create Tests/DeleteFolder
- NSString *testPathDelete = [NSString stringWithFormat:@"%@/DeleteFolder", k_path_test_folder];
- [self createFolderWithName:testPathDelete];
-
- //Upload a file
- NSString *bundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"test" ofType:@"jpeg"];
-
- //Upload file Tests/Test Read Folder/File1
- NSString *uploadPath = [NSString stringWithFormat:@"%@/DeleteFolder/File1.jpeg", k_path_test_folder];
- [self uploadFilePath:bundlePath inRemotePath:uploadPath];
-
- NSString *filePath = [NSString stringWithFormat:@"%@%@/DeleteFolder/File1.jpeg", k_webdav_base_url, k_path_test_folder];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
-
- [_sharedOCCommunication deleteFileOrFolder:filePath onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse * response, NSString *redirectedServer) {
- //File deleted
- NSLog(@"File deleted");
- dispatch_semaphore_signal(semaphore);
- } failureRquest:^(NSURLResponse * response, NSError * error, NSString *redirectedServer) {
- //Error
- XCTFail(@"Error test delete file");
- // Signal that block has completed
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:10]];
- }
- ///-----------------------------------
- /// @name Test Read Folder
- ///-----------------------------------
- /**
- * In this test we check many things:
- * 1.- The read folder method works, conected with server and get the answer
- * 2.- Check the parser checking a specific number of items in the selected path
- * 3.- Check the parser checking a specific number of files and folders
- *
- */
- - (void)testReadFolder{
-
- //Create Tests/Test Read Folder
- NSString *testPathReadFolder = [NSString stringWithFormat:@"%@/Test Read Folder", k_path_test_folder];
- [self createFolderWithName:testPathReadFolder];
-
- //Create Tests/Test Read Folder/Folder1
- NSString *testPathReadFolder1 = [NSString stringWithFormat:@"%@/Test Read Folder/Folder1", k_path_test_folder];
- [self createFolderWithName:testPathReadFolder1];
-
- //Create Tests/Test Read Folder/Folder2
- NSString *testPathReadFolder2 = [NSString stringWithFormat:@"%@/Test Read Folder/Folder2", k_path_test_folder];
- [self createFolderWithName:testPathReadFolder2];
-
- //Create Tests/Test Read Folder/Folder3
- NSString *testPathReadFolder3 = [NSString stringWithFormat:@"%@/Test Read Folder/Folder3", k_path_test_folder];
- [self createFolderWithName:testPathReadFolder3];
-
-
- NSString *bundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"test" ofType:@"jpeg"];
-
- //Upload file Tests/Test Read Folder/File1
- NSString *uploadPath1 = [NSString stringWithFormat:@"%@/Test Read Folder/File1.jpeg", k_path_test_folder];
- [self uploadFilePath:bundlePath inRemotePath:uploadPath1];
-
- //Upload file Tests/Test Read Folder/File2
- NSString *uploadPath2 = [NSString stringWithFormat:@"%@/Test Read Folder/File2.jpeg", k_path_test_folder];
- [self uploadFilePath:bundlePath inRemotePath:uploadPath2];
-
- //Upload file Tests/Test Read Folder/File3
- NSString *uploadPath3 = [NSString stringWithFormat:@"%@/Test Read Folder/File3.jpeg", k_path_test_folder];
- [self uploadFilePath:bundlePath inRemotePath:uploadPath3];
-
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
- //Path with 7 elements: {3 files, 3 folders and the parent folder}
- NSString *path = [NSString stringWithFormat:@"%@%@/Test Read Folder/", k_webdav_base_url, k_path_test_folder];
-
- path = [path stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- [_sharedOCCommunication readFolder:path withUserSessionToken:nil onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSArray *items, NSString *redirectedServer, NSString *token) {
-
- //Counters
- NSInteger foldersCount = 0;
- NSInteger filesCount = 0;
- //Remove the parent folder item
- NSInteger realItemsCount = items.count - 1;
-
- //Constants
- const int k_items = 6;
- const int k_files = 3;
- const int k_folders = 3;
-
- //Loop the items
- for (OCFileDto *itemDto in items) {
- //Check parser
- NSLog(@"Item file name: %@", itemDto.fileName);
- NSLog(@"Item file path: %@", itemDto.filePath);
-
- //Not include the root folder
- if (itemDto.fileName !=nil) {
- //File or folder
- if (itemDto.isDirectory) {
- foldersCount++;
- } else {
- filesCount++;
- }
- }
- }
-
- if (realItemsCount == k_items) {
-
- //Check account of files and folders
- if (foldersCount == k_folders && filesCount == k_files) {
- NSLog(@"Read Folder Test OK");
- } else {
- XCTFail(@"Error reading a folder - There are: %ld folders and %ld files insead of %d folders and %d files", (long)foldersCount, (long)filesCount, k_folders, k_files);
- }
-
- } else {
- XCTFail(@"Error reading a folder - There are: %ld elements insead of 6 elements", (long)realItemsCount);
- }
-
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *token, NSString *redirectedServer) {
- XCTFail(@"Error reading a folder - and Error");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name Test Read File
- ///-----------------------------------
- /**
- * In this test we check the etag of a specific folder
- * we do changes in the folder in order to know the etag changed
- *
- */
- -(void)testReadFile{
-
- //Create Tests/Test Read File
- NSString *testReadFilePath = [NSString stringWithFormat:@"%@/Test Read File", k_path_test_folder];
- [self createFolderWithName:testReadFilePath];
-
-
- //1.- Get and Store the etag of a specific folder
-
- //2.- Create a new folder with a specific name
-
- //3.- Delete the folder created
-
- //4.- Get and Compare the etag of the same folder with the preview, if is different the TEST is OK
-
- //Block Store Attributes
- __block NSString *etag = @"";
-
-
- //Path of new folder
- NSString *newFolder = [NSString stringWithFormat:@"%@%@/Test Read File/DeletedFolder/", k_webdav_base_url, k_path_test_folder];
- newFolder = [newFolder stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //Path to the test
- NSString *path = [NSString stringWithFormat:@"%@%@/Test Read File/", k_webdav_base_url, k_path_test_folder];
- path = [path stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- [_sharedOCCommunication readFile:path onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSArray *items, NSString *redirectedServer) {
-
- for (OCFileDto *itemDto in items) {
- //Check parser
- NSLog(@"Item file path: %@", itemDto.filePath);
- NSLog(@"Item etag: %@", itemDto.etag);
-
- if (itemDto.etag) {
- etag = itemDto.etag;
- } else {
- XCTFail(@"Error getting the etag");
- }
- }
-
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error reading the folder properties - and Error");
- dispatch_semaphore_signal(semaphore);
-
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
- //Check if etag exists
- if (etag) {
-
- //Create Folder
- //We create a semaphore to wait until we recive the responses from Async calls
- semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication createFolder:newFolder onCommunication:_sharedOCCommunication withForbiddenCharactersSupported:NO successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
- //Folder created
- NSLog(@"Folder created");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error testCreateFolder");
- // Signal that block has completed
- dispatch_semaphore_signal(semaphore);
- } errorBeforeRequest:^(NSError *error) {
- XCTFail(@"Error testCreateFolder");
- // Signal that block has completed
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
-
- //Delete Folder
- //We create a semaphore to wait until we recive the responses from Async calls
- semaphore = dispatch_semaphore_create(0);
-
-
- [_sharedOCCommunication deleteFileOrFolder:newFolder onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse * response, NSString *redirectedServer) {
- //Folder deleted
- NSLog(@"Folder deleted");
- dispatch_semaphore_signal(semaphore);
- } failureRquest:^(NSURLResponse * response, NSError * error, NSString *redirectedServer) {
- //Error
- XCTFail(@"Error testDeleteFolder");
- // Signal that block has completed
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:10]];
-
-
-
- //Get the folder etag again
- //We create a semaphore to wait until we recive the responses from Async calls
- semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication readFile:path onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSArray *items, NSString *redirectedServer) {
-
- for (OCFileDto *itemDto in items) {
- //Check parser
- NSLog(@"Item file path: %@", itemDto.filePath);
- NSLog(@"Item etag: %@", itemDto.etag);
-
- if (itemDto.etag) {
-
- if ([etag isEqual:itemDto.etag]) {
- XCTFail(@"The same etag after the changes");
- }else{
- NSLog(@"Test OK");
- }
-
-
- } else {
- XCTFail(@"Error getting the etag");
- }
- }
-
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error reading the folder properties - and Error");
- dispatch_semaphore_signal(semaphore);
-
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
- }
-
- }
- ///-----------------------------------
- /// @name Test Download File
- ///-----------------------------------
- /**
- * This test try to download a specific file
- * It the file download the test is ok
- *
- */
- - (void) testDownloadFile {
-
- //Create Tests/Test Download Folder
- NSString *downloadPath = [NSString stringWithFormat:@"%@/Test Download", k_path_test_folder];
- [self createFolderWithName:downloadPath];
-
- //Upload test file
- NSString *bundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"test" ofType:@"jpeg"];
-
- //Upload file /Tests/Test Download/test.jpeg
- NSString *uploadPath = [NSString stringWithFormat:@"%@/Test Download/Test.jpeg", k_path_test_folder];
- [self uploadFilePath:bundlePath inRemotePath:uploadPath];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //Create Folder in File Sytem to test
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
- //Documents/Test Download/
- NSString *localPath = documentsDirectory;
-
- //Make the path if not exists
- NSError *error = nil;
- if (![[NSFileManager defaultManager] fileExistsAtPath:localPath])
- [[NSFileManager defaultManager] createDirectoryAtPath:localPath withIntermediateDirectories:NO attributes:nil error:&error];
-
- //Documents/Test Download/image.png
- localPath = [localPath stringByAppendingString:@"/image.jpeg"];
-
- //Path of server file file
- NSString *serverUrl = [NSString stringWithFormat:@"%@%@/Test Download/Test.jpeg", k_webdav_base_url, k_path_test_folder];
- serverUrl = [serverUrl stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- NSURLSessionTask *downloadTask = nil;
-
- downloadTask = [_sharedOCCommunication downloadFileSession:serverUrl toDestiny:localPath defaultPriority:YES onCommunication:_sharedOCCommunication progress:^(NSProgress *progress) {
- NSLog(@"File: %lld bytes", progress.completedUnitCount);
- } successRequest:^(NSURLResponse *response, NSURL *filePath) {
-
- NSLog(@"File Downloaded ok");
- //Delete the file
- NSError *theError = nil;
- [[NSFileManager defaultManager] removeItemAtPath:localPath error:&theError];
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error) {
-
- XCTFail(@"Error download a file - Response - Error");
- //Delete the file
- NSError *theError = nil;
- [[NSFileManager defaultManager] removeItemAtPath:localPath error:&theError];
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
-
- }
-
- ///-----------------------------------
- /// @name Test download not existing file
- ///-----------------------------------
- /**
- * This test try to download a unexisting file
- * The test works fine if the file is not download
- *
- */
- - (void) testDownloadNotExistingFile {
-
- //Create Tests/Test Download
- NSString *downloadPath = [NSString stringWithFormat:@"%@/Test Download", k_path_test_folder];
- [self createFolderWithName:downloadPath];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //Create Folder in File Sytem to test
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
- //Documents/Test Download/
- NSString *localPath = [documentsDirectory stringByAppendingPathComponent:@"Test Download"];
-
- //Make the path if not exists
- NSError *error = nil;
- if (![[NSFileManager defaultManager] fileExistsAtPath:documentsDirectory])
- [[NSFileManager defaultManager] createDirectoryAtPath:documentsDirectory withIntermediateDirectories:NO attributes:nil error:&error];
-
-
- //Documents/Test Download/image.png
- localPath = [localPath stringByAppendingString:@"/image.png"];
-
- //Path of server file that not exist
- NSString *serverUrl = [NSString stringWithFormat:@"%@%@/Test Download/test image not exist.PNG", k_webdav_base_url, k_path_test_folder];
- serverUrl = [serverUrl stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- NSURLSessionDownloadTask *downloadTask = nil;
-
- downloadTask = [_sharedOCCommunication downloadFileSession:serverUrl toDestiny:localPath defaultPriority:YES onCommunication:_sharedOCCommunication progress:^(NSProgress *progress) {
- NSLog(@"File: %lld bytes", progress.completedUnitCount);
- } successRequest:^(NSURLResponse *response, NSURL *filePath) {
-
- XCTFail(@"Download file ok, not possible");
-
- //Delete the file
- NSError *theError = nil;
- [[NSFileManager defaultManager] removeItemAtPath:localPath error:&theError];
-
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error) {
-
- //Delete the file
- NSError *theError = nil;
- [[NSFileManager defaultManager] removeItemAtPath:localPath error:&theError];
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
- }
- ///-----------------------------------
- /// @name Test Download File With Session
- ///-----------------------------------
- /**
- * This test try to download a specific file using NSURLSession
- * If the file is downloaded the test is ok
- *
- */
- - (void) testDownloadFileWithSession {
- //Create Tests/Test Download Folder
- NSString *downloadPath = [NSString stringWithFormat:@"%@/Test Download", k_path_test_folder];
- [self createFolderWithName:downloadPath];
-
- //Upload test file
- NSString *bundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"test" ofType:@"jpeg"];
-
- //Upload file /Tests/Test Download/test.jpeg
- NSString *uploadPath = [NSString stringWithFormat:@"%@/Test Download/Test.jpeg", k_path_test_folder];
- [self uploadFilePath:bundlePath inRemotePath:uploadPath];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //Create Folder in File Sytem to test
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
- //Documents/Test Download/
- NSString *localPath = documentsDirectory;
-
- //Make the path if not exists
- NSError *error = nil;
- if (![[NSFileManager defaultManager] fileExistsAtPath:localPath])
- [[NSFileManager defaultManager] createDirectoryAtPath:localPath withIntermediateDirectories:NO attributes:nil error:&error];
-
- //Documents/Test Download/image.png
- localPath = [localPath stringByAppendingString:@"/image.jpeg"];
-
- //Path of server file file
- NSString *serverUrl = [NSString stringWithFormat:@"%@%@/Test Download/Test.jpeg", k_webdav_base_url, k_path_test_folder];
- serverUrl = [serverUrl stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- NSURLSessionDownloadTask *downloadTask = nil;
-
- downloadTask = [_sharedOCCommunication downloadFileSession:serverUrl toDestiny:localPath defaultPriority:YES onCommunication:_sharedOCCommunication progress:^(NSProgress *progress) {
- NSLog(@"File: %lld bytes", progress.completedUnitCount);
- } successRequest:^(NSURLResponse *response, NSURL *filePath) {
-
- NSLog(@"File Downloaded ok");
- //Delete the file
- NSError *theError = nil;
- [[NSFileManager defaultManager] removeItemAtPath:localPath error:&theError];
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error) {
-
- XCTFail(@"Error download a file - Error");
- //Delete the file
- NSError *theError = nil;
- [[NSFileManager defaultManager] removeItemAtPath:localPath error:&theError];
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name Test Download With Session A File that does not exist
- ///-----------------------------------
- /**
- * This test try to download a file that does not exist using NSURLSession
- * If the file is not downloaded, the test is ok
- *
- */
- - (void) testDownloadWithSessionAFileThatDoesNotExist {
-
- //Create Tests/Test Download Folder
- NSString *downloadPath = [NSString stringWithFormat:@"%@/Test Download", k_path_test_folder];
- [self createFolderWithName:downloadPath];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //Create Folder in File Sytem to test
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
- //Documents/Test Download/
- NSString *localPath = documentsDirectory;
-
- //Make the path if not exists
- NSError *error = nil;
- if (![[NSFileManager defaultManager] fileExistsAtPath:localPath])
- [[NSFileManager defaultManager] createDirectoryAtPath:localPath withIntermediateDirectories:NO attributes:nil error:&error];
-
- //Documents/Test Download/image.png
- localPath = [localPath stringByAppendingString:@"/image.jpeg"];
-
- //Path of server file file
- NSString *serverUrl = [NSString stringWithFormat:@"%@%@/Test Download/Test.jpeg", k_webdav_base_url, k_path_test_folder];
- serverUrl = [serverUrl stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- NSURLSessionDownloadTask *downloadTask = nil;
-
- downloadTask = [_sharedOCCommunication downloadFileSession:serverUrl toDestiny:localPath defaultPriority:YES onCommunication:_sharedOCCommunication progress:^(NSProgress *progress) {
- NSLog(@"File: %lld bytes", progress.completedUnitCount);
- } successRequest:^(NSURLResponse *response, NSURL *filePath) {
-
- XCTFail(@"Download file ok, not possible");
- //Delete the file
- NSError *theError = nil;
- [[NSFileManager defaultManager] removeItemAtPath:localPath error:&theError];
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error) {
-
- NSLog(@"Error downloading a file - Error");
- //Delete the file
- NSError *theError = nil;
- [[NSFileManager defaultManager] removeItemAtPath:localPath error:&theError];
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name Test to upload a file that does not exist
- ///-----------------------------------
- /**
- * This test try to upload that does not exist on the filesystem
- * This test is passed if we detect that the file does not exist
- *
- */
- - (void) testUploadAFileThatDoesNotExist {
-
- //Create Tests/Test Upload
- NSString *uploadPath = [NSString stringWithFormat:@"%@/Test Upload", k_path_test_folder];
- [self createFolderWithName:uploadPath];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //Create Folder in File Sytem to test
- NSString *localPath = [NSString stringWithFormat:@"%@/Name of the file that does not exist.png", [[NSBundle mainBundle] resourcePath]];
-
- //Path of server file file
- NSString *serverUrl = [NSString stringWithFormat:@"%@%@/Test Upload/Name of the file that does not exist.png", k_webdav_base_url, k_path_test_folder];
- serverUrl = [serverUrl stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- NSURLSessionUploadTask *uploadTask = nil;
-
- uploadTask = [_sharedOCCommunication uploadFileSession:localPath toDestiny:serverUrl onCommunication:_sharedOCCommunication progress:^(NSProgress *progress) {
- NSLog(@"File: %lld bytes", progress.completedUnitCount);
- } successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
-
- XCTFail(@"Error We upload a file that does not exist");
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSString *redirectedServer, NSError *error) {
-
- XCTFail(@"Error. File do not uploaded");
- dispatch_semaphore_signal(semaphore);
-
- } failureBeforeRequest:^(NSError *error) {
- NSLog(@"File that do not exist does not upload");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
- }
- ///-----------------------------------
- /// @name Test to upload a file with Forbbiden Characters
- ///-----------------------------------
- /**
- * This test try to uplad with special characters in destiny name
- */
- - (void) testUploadAFileWithSpecialCharacters {
-
- //Create Tests/Test Upload
- NSString *uploadPath = [NSString stringWithFormat:@"%@/Test Upload", k_path_test_folder];
- [self createFolderWithName:uploadPath];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //Upload test file
- NSString *localPath = [[NSBundle bundleForClass:[self class]] pathForResource:@"video" ofType:@"MOV"];
-
- //Path of server file file (Special character added in file name)
- NSString *serverUrl = [NSString stringWithFormat:@"%@%@/Test Upload/video@.mov", k_webdav_base_url, k_path_test_folder];
- serverUrl = [serverUrl stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- NSURLSessionUploadTask *uploadTask = nil;
-
- uploadTask = [_sharedOCCommunication uploadFileSession:localPath toDestiny:serverUrl onCommunication:_sharedOCCommunication progress:^(NSProgress *progress) {
- NSLog(@"File: %lld bytes", progress.completedUnitCount);
- } successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
- NSLog(@"File Uploaded with Special Characters");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSString *redirectedServer, NSError *error) {
- XCTFail(@"Error. File do not uploaded");
- dispatch_semaphore_signal(semaphore);
- } failureBeforeRequest:^(NSError *error) {
- XCTFail(@"Error File does not exist");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name Test to upload with session
- ///-----------------------------------
- /**
- * This test try to uplad a file using NSURLSession
- *
- */
- - (void) testUploadFileWithSession {
-
- //Create Tests/Test Upload
- NSString *uploadPath = [NSString stringWithFormat:@"%@/Test Upload", k_path_test_folder];
- [self createFolderWithName:uploadPath];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //Upload test file
- NSString *localPath = [[NSBundle bundleForClass:[self class]] pathForResource:@"test" ofType:@"jpeg"];
-
- //Path of server file file
- NSString *serverUrl = [NSString stringWithFormat:@"%@%@/Test Upload/CompanyLogo.png", k_webdav_base_url, k_path_test_folder];
- serverUrl = [serverUrl stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- NSURLSessionUploadTask *uploadTask = nil;
-
- uploadTask = [_sharedOCCommunication uploadFileSession:localPath toDestiny:serverUrl onCommunication:_sharedOCCommunication progress:^(NSProgress *progress) {
- NSLog(@"File: %lld bytes", progress.completedUnitCount);
- } successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
-
- NSLog(@"File Uploaded");
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSString *redirectedServer, NSError *error) {
-
- XCTFail(@"Error. File do not uploaded");
- dispatch_semaphore_signal(semaphore);
-
- } failureBeforeRequest:^(NSError *error) {
- NSLog(@"File that do not exist does not upload");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
- }
- //-----------------------------------
- /// @name Test to upload with session and special characters
- ///-----------------------------------
- /**
- * This test try to uplad a file using NSURLSession
- *
- */
- - (void) testUploadFileWithSessionAndSpecialCharacters {
-
- //Create Tests/Test Upload
- NSString *uploadPath = [NSString stringWithFormat:@"%@/Test Upload", k_path_test_folder];
- [self createFolderWithName:uploadPath];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //Upload test file
- NSString *localPath = [[NSBundle bundleForClass:[self class]] pathForResource:@"video" ofType:@"MOV"];
-
- //Path of server file file (Special character added in file name)
- NSString *serverUrl = [NSString stringWithFormat:@"%@%@/Test Upload/video@.mov", k_webdav_base_url, k_path_test_folder];
- serverUrl = [serverUrl stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- NSURLSessionUploadTask *uploadTask = nil;
-
- uploadTask = [_sharedOCCommunication uploadFileSession:localPath toDestiny:serverUrl onCommunication:_sharedOCCommunication progress:^(NSProgress *progress) {
- NSLog(@"File: %lld bytes", progress.completedUnitCount);
- } successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
-
- NSLog(@"File Uploaded");
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSString *redirectedServer, NSError *error) {
-
- XCTFail(@"Error. File do not uploaded");
- dispatch_semaphore_signal(semaphore);
-
- } failureBeforeRequest:^(NSError *error) {
- NSLog(@"File that do not exist does not upload");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
- }
- ///-----------------------------------
- /// @name Test to upload with session file that does not exists
- ///-----------------------------------
- /**
- * This test try to uplad a file using NSURLSession
- *
- */
- - (void) testUploadWithSessionAFileThatDoesNotExist {
-
- //Create Tests/Test Upload
- NSString *uploadPath = [NSString stringWithFormat:@"%@/Test Upload", k_path_test_folder];
- [self createFolderWithName:uploadPath];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //Upload test file
- NSString *localPath = [[NSBundle bundleForClass:[self class]] pathForResource:@"videoA" ofType:@"MOV"];
-
- //Path of server file file (Special character added in file name)
- NSString *serverUrl = [NSString stringWithFormat:@"%@%@/Test Upload/video@.mov", k_webdav_base_url, k_path_test_folder];
- serverUrl = [serverUrl stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- NSURLSessionUploadTask *uploadTask = nil;
-
- uploadTask = [_sharedOCCommunication uploadFileSession:localPath toDestiny:serverUrl onCommunication:_sharedOCCommunication progress:^(NSProgress *progress) {
- NSLog(@"File: %lld bytes", progress.completedUnitCount);
- } successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
-
- XCTFail(@"Error We upload a file that does not exist");
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSString *redirectedServer, NSError *error) {
-
- NSLog(@"File that do not exist does not upload");
- dispatch_semaphore_signal(semaphore);
-
- } failureBeforeRequest:^(NSError *error) {
- NSLog(@"File that do not exist does not upload");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
- }
- ///-----------------------------------
- /// @name Test the share a folder
- ///-----------------------------------
- /**
- * This test try to share a folder
- */
- - (void) testShareAFolder {
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication shareFileOrFolderByServer:k_base_url andFileOrFolderPath:[NSString stringWithFormat:@"/%@", k_path_test_folder] onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSString *listOfShared, NSString *redirectedServer) {
- NSLog(@"Folder shared");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error sharing folder");
- dispatch_semaphore_signal(semaphore);
- }];
-
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name Test read shares items
- ///-----------------------------------
- /**
- * This test try to check if a shared folder is shared and obtain his information
- */
- - (void) testReadShared {
-
- //1. create the folder and share it
- [self testShareAFolder];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //2. Check if the folder is shared
- [_sharedOCCommunication readSharedByServer:k_base_url onCommunication: _sharedOCCommunication successRequest:^(NSURLResponse *response, NSArray *listOfShared, NSString *redirectedServer) {
-
- BOOL isFolderShared = NO;
-
- for (OCSharedDto *current in listOfShared) {
- if ([current.path isEqualToString:[NSString stringWithFormat:@"/%@/", k_path_test_folder]]) {
- isFolderShared = YES;
- }
- }
-
- if (!isFolderShared) {
- XCTFail(@"Folder not shared");
- dispatch_semaphore_signal(semaphore);
- }
-
-
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
-
- XCTFail(@"Error reading shares");
- dispatch_semaphore_signal(semaphore);
-
- }];
-
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name Test unshare items
- ///-----------------------------------
- /**
- * This test try unshare a item
- */
- - (void) testUnShareAFolder {
-
- //1. create the folder and share it
- [self testShareAFolder];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //2. read the folder to obtain the info of OCSharedDto
- [_sharedOCCommunication readSharedByServer:k_base_url onCommunication: _sharedOCCommunication successRequest:^(NSURLResponse *response, NSArray *listOfShared, NSString *redirectedServer) {
-
- OCSharedDto *shared;
-
- for (OCSharedDto *current in listOfShared) {
- if ([current.path isEqualToString:[NSString stringWithFormat:@"/%@/", k_path_test_folder]]) {
- shared = current;
- }
- }
-
- if (shared) {
-
- //3. Unshare the folder
- [_sharedOCCommunication unShareFileOrFolderByServer:k_base_url andIdRemoteShared:shared.idRemoteShared onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
- NSLog(@"File unshared");
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error unsharing folder");
- dispatch_semaphore_signal(semaphore);
- }];
-
-
-
- } else {
- XCTFail(@"Folder not shared on testUnShareAFolder");
- dispatch_semaphore_signal(semaphore);
- }
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
-
- XCTFail(@"Error reading shares on testUnShareAFolder");
- dispatch_semaphore_signal(semaphore);
-
- }];
-
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name Test read capabilities
- ///-----------------------------------
- /**
- * This test try to check if a shared folder is shared and obtain his information
- */
- - (void) testGetCapabilitiesOfServer {
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication getCapabilitiesOfServer:k_base_url onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, OCCapabilities *capabilities, NSString *redirectedServer) {
- NSLog(@"Get capabilities ok");
- XCTAssertNotNil(capabilities, @"Error get capabilites of server");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error get capabilites of server");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name Test read capabilities
- ///-----------------------------------
- /**
- * This test check get capabilities
- */
- - (void) testShareLinkWithPassword {
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication shareFileOrFolderByServer:k_base_url andFileOrFolderPath:[NSString stringWithFormat:@"/%@", k_path_test_folder] andPassword:@"testing" onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSString *shareLink, NSString *redirectedServer) {
- NSLog(@"Folder shared by link with password");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error sharing folder by link with password");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
- }
- ///-----------------------------------
- /// @name Test share link with expiration date and password
- ///-----------------------------------
- /**
- * This test check the creation of a link with expiration date
- */
- - (void) testShareLinkWithExpirationDateAndPassword {
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //1. Share a folder
- [self testShareAFolder];
-
- //2. Read the shared
- [_sharedOCCommunication readSharedByServer:k_base_url onCommunication: _sharedOCCommunication successRequest:^(NSURLResponse *response, NSArray *listOfShared, NSString *redirectedServer) {
-
- BOOL isFolderShared = NO;
-
- for (OCSharedDto *current in listOfShared) {
- if ([current.path isEqualToString:[NSString stringWithFormat:@"/%@/", k_path_test_folder]]) {
- isFolderShared = YES;
-
- NSDateFormatter *dateFormatter = [NSDateFormatter new];
- [dateFormatter setDateFormat:@"YYYY-MM-dd"];
- NSDate *tomorrow = [NSDate dateWithTimeInterval:(24*60*60) sinceDate:[NSDate date]];
- NSString *foarmatedDate = [dateFormatter stringFromDate:tomorrow];
-
- //3. Update the share with password and expiration date
- [_sharedOCCommunication updateShare:current.idRemoteShared ofServerPath:k_base_url withPasswordProtect:@"testing" andExpirationTime:foarmatedDate andPermissions:k_read_share_permission onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
-
- NSLog(@"Updated shared by link with expiration date and password");
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
-
- XCTFail(@"Error updating shared by link with expiration date and password");
- dispatch_semaphore_signal(semaphore);
-
- }];
- }
- }
-
- if (!isFolderShared) {
- XCTFail(@"Folder not shared");
- dispatch_semaphore_signal(semaphore);
- }
-
-
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
-
- XCTFail(@"Error reading shares");
- dispatch_semaphore_signal(semaphore);
-
- }];
-
-
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
- }
- ///-----------------------------------
- /// @name Tests search users and groups
- ///-----------------------------------
- /**
- * This test search for first 30 users or groups on server that match the pattern "aa"
- */
- - (void) testSearchUsersAndGroups {
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication searchUsersAndGroupsWith:@"aa" forPage:1 with:30 ofServer:k_base_url onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSArray *itemList, NSString *redirectedServer) {
- NSLog(@"Search users and groups");
- XCTAssertNotNil(itemList, @"Error search users and groups");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error get capabilites of server");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- /**
- * This test search for first 30 users or groups with special characters on server that match the pattern "user@"
- */
- - (void) testSearchUsersAndGroupsWithSpecialCharacters {
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication searchUsersAndGroupsWith:@"user@" forPage:1 with:30 ofServer:k_base_url onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSArray *itemList, NSString *redirectedServer) {
- NSLog(@"Search users and groups");
- XCTAssertNotNil(itemList, @"Error search users and groups");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error get capabilites of server");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name Test share with user with special character
- ///-----------------------------------
- /**
- * This test share with a userToShare the folder pathTestFolder
- */
- - (void) testShareWithUser {
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication shareWith:k_user_to_share shareeType:shareTypeUser inServer:k_base_url andFileOrFolderPath:[NSString stringWithFormat:@"/%@", k_path_test_folder] andPermissions:k_read_share_permission onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
- NSLog(@"Share with user");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error share with user");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name Test share with group with special character
- ///-----------------------------------
- /**
- * This test share with groupToShare the folder pathTestFolder
- */
- - (void) testShareWithGroup {
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication shareWith:k_group_to_share shareeType:shareTypeGroup inServer:k_base_url andFileOrFolderPath:[NSString stringWithFormat:@"/%@", k_path_test_folder] andPermissions:k_read_share_permission onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
- NSLog(@"Share with group");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error share with group");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name Test unshare with user with special character
- ///-----------------------------------
- /**
- * This test unShare with user the folder pathTestFolder
- */
- - (void) testUnShareWithUser {
-
- //1. create the folder and share it with user
- [self testShareWithUser];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //2. read the folder to obtain the info of OCSharedDto
- [_sharedOCCommunication readSharedByServer:k_base_url
- onCommunication: _sharedOCCommunication successRequest:^(NSURLResponse *response, NSArray *listOfShared, NSString *redirectedServer) {
-
- OCSharedDto *shared;
-
- for (OCSharedDto *current in listOfShared) {
- if ([current.path isEqualToString:[NSString stringWithFormat:@"/%@/", k_path_test_folder]]
- && [current.shareWith isEqualToString:k_user_to_share]) {
- shared = current;
- }
- }
-
- if (shared) {
-
- //3. Unshare the folder
- [_sharedOCCommunication unShareFileOrFolderByServer:k_base_url andIdRemoteShared:shared.idRemoteShared onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
- NSLog(@"File unshared with user");
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error unsharing folder with user");
- dispatch_semaphore_signal(semaphore);
- }];
-
-
-
- } else {
- XCTFail(@"Folder not shared on testUnShareWithUser");
- dispatch_semaphore_signal(semaphore);
- }
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
-
- XCTFail(@"Error reading shares on testUnShareWithUser");
- dispatch_semaphore_signal(semaphore);
-
- }];
-
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];}
- ///-----------------------------------
- /// @name Test is share by server
- ///-----------------------------------
- /**
- * This test check if a shared file is shared
- */
- - (void) testIsShareByServer {
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //1. Share a folder
- [self testShareAFolder];
-
- //2. Read the shared
- [_sharedOCCommunication readSharedByServer:k_base_url onCommunication: _sharedOCCommunication successRequest:^(NSURLResponse *response, NSArray *listOfShared, NSString *redirectedServer) {
-
- BOOL isFolderShared = NO;
-
- for (OCSharedDto *current in listOfShared) {
- if ([current.path isEqualToString:[NSString stringWithFormat:@"/%@/", k_path_test_folder]]) {
- isFolderShared = YES;
-
-
- //3. Check if the share folder is shared by the id
- [_sharedOCCommunication isShareFileOrFolderByServer:k_base_url andIdRemoteShared:current.idRemoteShared onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSString *redirectedServer, BOOL isShared, id shareDto) {
-
- NSLog(@"File is shared");
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
-
- XCTFail(@"Error checking if a share is shared by id share");
- dispatch_semaphore_signal(semaphore);
-
- }];
- }
- }
-
- if (!isFolderShared) {
- XCTFail(@"Folder not shared before check");
- dispatch_semaphore_signal(semaphore);
- }
-
-
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
-
- XCTFail(@"Error reading shares");
- dispatch_semaphore_signal(semaphore);
-
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
- }
- ///-----------------------------------
- /// @name Test unshare file or folder
- ///-----------------------------------
- /**
- * This test check if we can unshare a file or folder
- */
- - (void) testUnShareByServer {
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- //1. Share a folder
- [self testShareAFolder];
-
- //2. Read the shared
- [_sharedOCCommunication readSharedByServer:k_base_url onCommunication: _sharedOCCommunication successRequest:^(NSURLResponse *response, NSArray *listOfShared, NSString *redirectedServer) {
-
- BOOL isFolderShared = NO;
-
- for (OCSharedDto *current in listOfShared) {
- if ([current.path isEqualToString:[NSString stringWithFormat:@"/%@/", k_path_test_folder]]) {
- isFolderShared = YES;
-
- //3. Unshare the share folder by the id
- [_sharedOCCommunication unShareFileOrFolderByServer:k_base_url andIdRemoteShared:current.idRemoteShared onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
-
- NSLog(@"Share unshared correctly");
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
-
- XCTFail(@"Error unsharing file by id share");
- dispatch_semaphore_signal(semaphore);
-
- }];
-
- }
- }
-
- if (!isFolderShared) {
- XCTFail(@"Folder not shared before check");
- dispatch_semaphore_signal(semaphore);
- }
-
-
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
-
- XCTFail(@"Error reading shares");
- dispatch_semaphore_signal(semaphore);
-
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
- }
- ///-----------------------------------
- /// @name testGetFeaturesSupportedByServer
- ///-----------------------------------
- /**
- * This test check if we can get all the features supported by the server
- */
- - (void) testGetFeaturesSupportedByServer {
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication getFeaturesSupportedByServer:k_base_url onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, BOOL hasShareSupport, BOOL hasShareeSupport, BOOL hasCookiesSupport, BOOL hasForbiddenCharactersSupport, BOOL hasCapabilitiesSupport, BOOL hasFedSharesOptionShareSupport, NSString *redirectedServer) {
-
- NSLog(@"Server features correctly read");
- NSLog(@"hasShareSupport: %d", hasShareSupport);
- NSLog(@"hasShareeSupport: %d", hasShareeSupport);
- NSLog(@"hasCookiesSupport: %d", hasCookiesSupport);
- NSLog(@"hasForbiddenCharactersSupport: %d", hasForbiddenCharactersSupport);
- NSLog(@"hasCapabilitiesSupport: %d", hasCapabilitiesSupport);
- NSLog(@"hasFedSharesOptionShareSupport: %d", hasFedSharesOptionShareSupport);
-
- dispatch_semaphore_signal(semaphore);
-
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
-
- XCTFail(@"Error reading server features");
- dispatch_semaphore_signal(semaphore);
-
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
- }
- ///-----------------------------------
- /// @name Test share with remote user federated sharing
- ///-----------------------------------
- /**
- * This test share with a userToShare the folder pathTestFolder
- */
- - (void) testShareWithRemoteUser {
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication shareWith:k_remote_user_to_share shareeType:shareTypeRemote inServer:k_base_url andFileOrFolderPath:[NSString stringWithFormat:@"/%@", k_path_test_folder] andPermissions:k_max_folder_share_permission onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
- NSLog(@"Share with remote user");
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error share with remote user");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
- }
- ///-----------------------------------
- /// @name Test to get a remote thumbnail
- ///-----------------------------------
- /**
- * This test try get a thumbnail of an image using the Thumbnail API
- *
- */
- - (void) testGetRemoteThumbnail {
-
-
- //Create Folder A for the Test
- NSString *testPath = [NSString stringWithFormat:@"%@/Folder A", k_path_test_folder];
- [self createFolderWithName:testPath];
-
- //Upload file /Tests/Folder A/test.jpeg
- NSString *bundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"test" ofType:@"jpeg"];
- NSString *remotePath = [NSString stringWithFormat:@"%@/Folder A/Test.jpg", k_path_test_folder];
- [self uploadFilePath:bundlePath inRemotePath:remotePath];
-
- //We create a semaphore to wait until we recive the responses from Async calls
- dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-
- [_sharedOCCommunication getRemoteThumbnailByServer:k_base_url ofFilePath:remotePath withWidth:64 andHeight:64 onCommunication:_sharedOCCommunication successRequest:^(NSURLResponse *response, NSData *thumbnail, NSString *redirectedServer) {
- if ([UIImage imageWithData:thumbnail]) {
- NSLog(@"Thumbnail getted");
- } else {
- XCTFail(@"Thumbnail getted but it is not an image");
- }
- dispatch_semaphore_signal(semaphore);
- } failureRequest:^(NSURLResponse *response, NSError *error, NSString *redirectedServer) {
- XCTFail(@"Error getting thumbnail");
- dispatch_semaphore_signal(semaphore);
- }];
-
- // Run loop
- while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
- beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-
- }
- @end
|