8 Commits

Author SHA1 Message Date
Moshe Kolodny
ab6aae7158 [PageControl] Fix bug with OOB array lookup when calling scrollViewDidScroll. (#2197)
* [PageControl] Fix bug with out of bounds array lookup when calling scrollViewDidScroll with zero numberOfPages.

* Address PR comments.
2017-10-17 00:19:42 -04:00
Julien Poumailloux
f7bcc9a7ac [PageControl] Fixed crasher when resetting -numberOfPages to 0 (#2132)
* Fixed MDCPageControl crasher when resetting -numberOfPages to 0. This is supported by UIPageControl.

Crasher details:
Test Case '-[PageControlExampleTests testResetNumberOfPagesToZero]' started.
~/material-components-ios/components/PageControl/tests/unit/PageControlExampleTests.m:139: error: -[PageControlExampleTests testResetNumberOfPagesToZero] : failed: caught "NSRangeException", "*** -[__NSArrayM objectAtIndexedSubscript:]: index 0 beyond bounds for empty array"
(
	0   CoreFoundation                      0x000000010e3ed03b __exceptionPreprocess + 171
	1   libobjc.A.dylib                     0x000000010da81f41 objc_exception_throw + 48
	2   CoreFoundation                      0x000000010e42ce2c _CFThrowFormattedException + 194
	3   CoreFoundation                      0x000000010e41e714 -[__NSArrayM objectAtIndexedSubscript:] + 148
	4   MaterialComponents                  0x0000000128271441 -[MDCPageControl resetControl] + 2193
	5   MaterialComponents                  0x000000012826e489 -[MDCPageControl setNumberOfPages:] + 281

* Also fixed crasher when the client sets a value for -currentPage (e.g. zero) when -numberOfPages is zero.

* Improved the unit test to hit the 2nd crasher prior to the fix

* Cleaner unit test for the crashers per review feedback
2017-10-09 17:04:12 -04:00
Adrian Secord
5bc8758de5 Porting warning fixes from internal change 166066139. 2017-08-22 17:29:23 -04:00
Adrian Secord
8c3af252be Adding AUTHORS and removing CONTRIBUTORS.txt.
We can credit any contributor who would like to be credited this way, by adding them on request to the AUTHORS file. The copyright statement changes are required for this to work. Note that this has...

Summary:

We can credit any contributor who would like to be credited this way, by adding them on request to the AUTHORS file. The copyright statement changes are required for this to work. Note that this has no legal change, since the contributors always retained their copyright despite the copyright notice, but it's a nice acknowledgement.

Changed copyright statement to include non-Google authors.

Command run:

find * \( -name '*\.m' -or -name '*\.h' -or -name '*\.swift' \) -and -not \( -path 'scripts/external*' -name Pods  \) -print0 | xargs -0 sed -i '' 's/Copyright \(.*\) Google Inc/Copyright \1 the Material Components for iOS authors/'

Added non-source files.

Command run:

grep -Rl 'Copyright .* Google Inc' * --exclude-dir scripts/external --null | xargs -0 sed -i '' 's/Copyright \(.*\) Google Inc/Copyright \1 the Material Components for iOS authors/'

Reviewers: featherless, O1 Material components iOS, randallli

Reviewed By: O1 Material components iOS, randallli

Tags: #material_components_ios

Differential Revision: http://codereview.cc/D1415
2016-08-08 08:16:37 -07:00
Adrian Secord
3aedace959 Re-enabled 100-character line limit.
Reviewers: randallli, O1 Material components iOS

Reviewed By: randallli, O1 Material components iOS

Tags: #material_components_ios

Differential Revision: http://codereview.cc/D965
2016-06-13 13:34:57 -04:00
randallli
e1f584adad [PageControl] Fix crash when scrollView offset is set out of bounds of the numberOfPages
Summary: If you set the content offset to larger than range of the page count the Page Control crashes because it tries to index out of bounds of an array.

Reviewers: cjcox, #mdc_ios_owners, featherless

Reviewed By: cjcox, #mdc_ios_owners, featherless

Projects: #material_components_ios

Differential Revision: http://codereview.cc/D671
2016-04-21 12:50:25 -04:00
randallli
ac8642f4a0 [PageControl] Added test for updating the currentPage when the contentOffset changes
Reviewers: ajsecord, #mdc_ios_owners

Reviewed By: ajsecord, #mdc_ios_owners

Subscribers: ajsecord

Projects: #material_components_ios

Differential Revision: http://codereview.cc/D702
2016-04-21 12:14:30 -04:00
Jeff Verkoeyen
d0092f692a Testing by convention.
Summary:
Similar to Catalog by convention, Testing by convention allows us to generate a fully-working unit test suite using CocoaPods wildcards.

The testing convention is to place unit test source files in a `tests/unit` folder within each component.

A complete "component by convention" now looks like so:

    component/
      examples/
        SomeExample.m
      src/
        ...
      tests/
        unit/
          SomeTest.m

This convention makes it trivially easy to run all tests in our project & generate coverage information. Here are our coverage results:

{F439}

Resolves https://github.com/google/material-components-ios/issues/106.

Reviewers: cjcox, ajsecord, #mdc_ios_owners

Reviewed By: ajsecord, #mdc_ios_owners

Projects: #material_components_ios

Differential Revision: http://codereview.cc/D158
2016-03-01 12:35:19 -05:00