Tests.m 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //
  2. // Tests.m
  3. //
  4. // Copyright (c) 2015-2016 Evgeny Aleksandrov. License: MIT.
  5. #import <EARestrictedScrollView/EARestrictedScrollView.h>
  6. SpecBegin(Main)
  7. __block UIWindow *window;
  8. __block EARestrictedScrollView *restrictedScrollView;
  9. beforeEach(^{
  10. window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  11. UIViewController *vc = [[UIViewController alloc] init];
  12. window.rootViewController = vc;
  13. restrictedScrollView = [[EARestrictedScrollView alloc] initWithFrame:vc.view.bounds];
  14. [vc.view addSubview:restrictedScrollView];
  15. [window makeKeyAndVisible];
  16. UIImage *bgImage = [UIImage imageNamed:@"milky-way.jpg"];
  17. UIImageView *imageView = [[UIImageView alloc] initWithImage:bgImage];
  18. [restrictedScrollView addSubview:imageView];
  19. [restrictedScrollView setContentSize:imageView.frame.size];
  20. expect(vc.view).willNot.beNil();
  21. expect(restrictedScrollView).willNot.beNil();
  22. });
  23. it(@"looks normal on init", ^{
  24. expect(window).to.haveValidSnapshotNamed(@"InitState");
  25. });
  26. it(@"have restriction area = view.frame", ^{
  27. CGRect restrRect = CGRectMake(300.f, 300.f, restrictedScrollView.bounds.size.width, restrictedScrollView.bounds.size.height);
  28. [restrictedScrollView setRestrictionArea:restrRect];
  29. expect(restrictedScrollView.contentOffset.x).to.equal(restrRect.origin.x);
  30. expect(restrictedScrollView.contentOffset.y).to.equal(restrRect.origin.y);
  31. expect(window).to.haveValidSnapshotNamed(@"RestrictionAreaEqualsSelf");
  32. [restrictedScrollView setRestrictionArea:CGRectZero];
  33. expect(restrictedScrollView.contentOffset.x).to.equal(restrRect.origin.x);
  34. expect(restrictedScrollView.contentOffset.y).to.equal(restrRect.origin.y);
  35. });
  36. it(@"have restriction area bigger than view.frame", ^{
  37. CGRect restrRect = CGRectMake(400.f, 400.f, restrictedScrollView.bounds.size.width * 1.5, restrictedScrollView.bounds.size.height * 1.5);
  38. [restrictedScrollView setRestrictionArea:restrRect];
  39. expect(restrictedScrollView.contentOffset.x).to.equal(restrRect.origin.x);
  40. expect(restrictedScrollView.contentOffset.y).to.equal(restrRect.origin.y);
  41. expect(window).to.haveValidSnapshotNamed(@"BiggerRestrictionFrameInit");
  42. });
  43. it(@"have restriction area bigger than view.frame + offset", ^{
  44. CGRect restrRect = CGRectMake(400.f, 400.f, restrictedScrollView.bounds.size.width * 1.5, restrictedScrollView.bounds.size.height * 1.5);
  45. [restrictedScrollView setRestrictionArea:restrRect];
  46. CGPoint newOffset = CGPointMake(restrRect.origin.x + 50, restrRect.origin.y + 50);
  47. [restrictedScrollView setContentOffset:newOffset animated:NO];
  48. expect(restrictedScrollView.contentOffset.x).to.equal(newOffset.x);
  49. expect(restrictedScrollView.contentOffset.y).to.equal(newOffset.y);
  50. [restrictedScrollView setRestrictionArea:CGRectZero];
  51. expect(restrictedScrollView.contentOffset.x).to.equal(newOffset.x);
  52. expect(restrictedScrollView.contentOffset.y).to.equal(newOffset.y);
  53. });
  54. SpecEnd