UIImagePickerControllerRACSupportSpec.m 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //
  2. // UIImagePickerControllerRACSupportSpec.m
  3. // ReactiveCocoa
  4. //
  5. // Created by Timur Kuchkarov on 17.04.14.
  6. // Copyright (c) 2014 GitHub, Inc. All rights reserved.
  7. //
  8. #import <Quick/Quick.h>
  9. #import <Nimble/Nimble.h>
  10. #import "UIImagePickerController+RACSignalSupport.h"
  11. #import "RACSignal.h"
  12. QuickSpecBegin(UIImagePickerControllerRACSupportSpec)
  13. qck_describe(@"UIImagePickerController", ^{
  14. __block UIImagePickerController *imagePicker;
  15. qck_beforeEach(^{
  16. imagePicker = [[UIImagePickerController alloc] init];
  17. expect(imagePicker).notTo(beNil());
  18. });
  19. qck_it(@"sends the user info dictionary after confirmation", ^{
  20. __block NSDictionary *selectedImageUserInfo = nil;
  21. [imagePicker.rac_imageSelectedSignal subscribeNext:^(NSDictionary *userInfo) {
  22. selectedImageUserInfo = userInfo;
  23. }];
  24. NSDictionary *info = @{
  25. UIImagePickerControllerMediaType: @"public.image",
  26. UIImagePickerControllerMediaMetadata: @{}
  27. };
  28. [imagePicker.delegate imagePickerController:imagePicker didFinishPickingMediaWithInfo:info];
  29. expect(selectedImageUserInfo).to(equal(info));
  30. });
  31. qck_it(@"cancels image picking process", ^{
  32. __block BOOL didSend = NO;
  33. __block BOOL didComplete = NO;
  34. [imagePicker.rac_imageSelectedSignal subscribeNext:^(NSDictionary *userInfo) {
  35. didSend = YES;
  36. } completed:^{
  37. didComplete = YES;
  38. }];
  39. [imagePicker.delegate imagePickerControllerDidCancel:imagePicker];
  40. expect(@(didSend)).to(beFalsy());
  41. expect(@(didComplete)).to(beTruthy());
  42. });
  43. });
  44. QuickSpecEnd