Commit Graph

4230 Commits

Author SHA1 Message Date
Tim Ekl 5ac18b14a7 Add missing expectations to send statuses tests
f82be27666 flipped around calls to `selectPendingCount(_:)` so that it
respected the new async nature of the method; however, it neglected to
add enough XCTestExpectations to keep the test methods running through
the callbacks. Add those here.
2020-01-01 13:39:17 -08:00
Tim Ekl e4c84bc501 Add two missing expectation fulfillments
It looks like two tests in FeedlySetStarredArticlesOperationTests
created but never referenced XCTestExpectation instances. Based on the
other nearby tests, add a call to `fulfill()` inside the associated
completion block after the rest of our test assertions are done.
2019-12-31 19:41:32 -06:00
Tim Ekl 6c10774c4a Fix build errors stemming from FeedlyTestSupport
There was one call to a throwing function inside
`checkArticles(in:correspondToStreamItemsIn:)` which was not
appropriately marked with `try`. Add that keyword, and then bubble out
the chain of errors through additional layers of helpers to the
enclosing test:

* This `checkArticles` variant was called by two others
* …one of which was used in `testAddNewFeedSuccess()`
* …another of which was used in various `verify` sync helpers
* …which were referenced from `testSyncing()`, a test case method

None of these involved any particular async hoops to jump through, and
since the top-level callers were all test functions, we can count on
XCTest to handle any errors thrown — no additional `catch` or handling
on our part is necessary.
2019-12-31 19:36:42 -06:00
Tim Ekl 711aca3d1b Fix build errors in Feedly test support
Two more cases of completion blocks taking Results, requiring a
do/catch/Result.get() to unwrap.

This commit deliberately leaves one build error for a more comprehensive
fix, since it occurs in a helper function that will have broader
fallout.
2019-12-31 19:29:44 -06:00
Tim Ekl 152b1f2b8a Fix errors in Feedly sync unread operations tests
Yet more completion blocks with Results; apply the usual
do/catch/Result.get() dance.
2019-12-31 19:27:47 -06:00
Tim Ekl 13b227a461 Fix errors in Feedly set starred operations tests
More of the same: completion blocks which take Results need
do/catch/Result.get().
2019-12-31 19:24:36 -06:00
Tim Ekl f12e8b4a4a Fix errors in starred articles operations tests
Pull the same do/catch/Result.get() trick as previously for completion
blocks which now take Results. `try` a few throwing calls.
2019-12-31 19:11:37 -06:00
Tim Ekl 6a4f3fb11e Fix build errors in sync stream operations tests
Prefix two throwing calls with `try`. Label the enclosing test functions
with `throws` so the XCTest machinery helps us with error reporting.
2019-12-31 19:08:29 -06:00
Tim Ekl 6583688e38 Fix errors in Feedly unread operations tests
Most fetch completion blocks took a parameter that was expected to be
some result data type, but is now a Result. Rename these parameters;
wrap their existing bodies in do/catch blocks; and recreate the original
underlying variable using the result of `Result.get()`.

Prepend a few synchronous calls that started throwing with `try` along
the way.
2019-12-31 19:06:10 -06:00
Tim Ekl ae1651fad1 Fix errors in Feedly update-feeds operation tests
Mark some throwing calls with `try`; mark the enclosing test functions
with `throws`, letting the XCTest framework handle error reporting for
us.
2019-12-31 15:55:59 -06:00
Tim Ekl f82be27666 Resolve errors in Feedly statuses operation tests
Add `error` parameters to completion blocks which now pass them. Assert
these errors are always nil in the existing tests.

Flip calls to `selectPendingCount()` so they are async, with a
completion block that asserts about the results instead of asserting
about the return value. Since the closure takes a Result, unwrap it in a
do/catch block at each site; `XCTAssertNoThrow` doesn't help us bubble a
value out from `Result.get()`, and I'd rather not use `try!` here. There
might be a stylistic discussion to be had about this unwrapping, though.
2019-12-31 15:52:54 -06:00
Maurice Parker 8a85b18d09
Merge pull request #1495 from kielgillard/ios-candidate
Models the feed identifier of feedly articles as an optional…
2019-12-30 14:55:30 -07:00
Kiel Gillard 3b47edfba7 Models the feed identifier of feedly articles as an optional since it seems the Feedly API will not always provide one (despite the API documentation).
Additional, more elegantly handle the failure to parse an article when Feedly does not provide a matching feed.
2019-12-31 08:47:27 +11:00
Maurice Parker c692d46cc8
Merge pull request #1493 from hartlco/1486-feedslist-contextmenu-mark-all-as-read
Include Mark All as Read in Feeds list context menu #1486
2019-12-30 13:37:38 -07:00
Martin Hartl 5cbfe3b071 Include Mark All as Read in Feeds list context menu 2019-12-30 21:16:50 +01:00
Brent Simmons 388886a355 Base our active articles window on dateArrived instead of datePublished. This reverses a recent change that led to some bugs. 2019-12-28 22:20:13 -08:00
Brent Simmons ac519c5c90 Add new and updated articles to the in-memory cache when saving articles. 2019-12-28 21:19:02 -08:00
Brent Simmons 26bb2b8eaf Remove references to Article.bannerImageURL. We can bring it back if/when we start using it. 2019-12-28 20:53:36 -08:00
Maurice Parker a1b23edc8b Delete obsolete code 2019-12-28 16:06:37 -07:00
Maurice Parker 5c4d8aeba7 Verify that the parent node to be expanded is a Folder before trying to expand it. 2019-12-28 10:58:15 -07:00
Maurice Parker 0fbd376078 Merge branch 'ios-candidate' of https://github.com/brentsimmons/NetNewsWire into ios-candidate 2019-12-28 10:23:43 -07:00
Maurice Parker 36521a1783 Don't crash if there isn't a folder or feed available. 2019-12-28 10:23:09 -07:00
Brent Simmons aeaeac61fc Get rid of DatabaseArticle entirely. Cache Article objects. This will make fetches faster *and* save memory. 2019-12-27 22:47:02 -08:00
Maurice Parker 4b361300f4 Fix the OPML export when there is only one exportable account. Issue #1457 2019-12-26 12:35:39 -07:00
Maurice Parker 1043b42472 Merge branch 'ios-candidate' of https://github.com/brentsimmons/NetNewsWire into ios-candidate 2019-12-26 12:22:10 -07:00
Maurice Parker 00ed368683 Change the full screen tap zone to be the center of the navigation bar instead of the whole navigation bar. Issue #1450. 2019-12-26 12:21:56 -07:00
Maurice Parker be2b7e6eef
Merge pull request #1465 from Wevah/ios-feed-sizing-fix
Make initial scale 100% and don't let WebKit increase text size
2019-12-26 11:24:49 -07:00
Nate Weaver 758fb1a1c0 Make initial scale 100% and don't let WebKit increase text size
Issue #1459.
2019-12-24 20:15:53 -06:00
Maurice Parker 84d1ccadfd Clear the saved middle position when emptying the timeline. Issue #1464 2019-12-24 17:55:56 -07:00
Maurice Parker 61370dd04d Fix so that we don't try to scroll before the datasource has been fully applied to the table. Issue #1463 2019-12-24 17:34:47 -07:00
Maurice Parker 5eac0dc0b4
Merge pull request #1455 from Austinate/bugfix/add_folder_account_name_sync_issue
iOS, Add Folder: Make sure Account Name field is in sync with selecte…
2019-12-24 16:02:28 -07:00
austinate f43e7880f7 iOS, Add Folder: Make sure Account Name field is in sync with selected account in picker 2019-12-23 17:20:52 +02:00
Brent Simmons df642c128a Bump version to 23. 2019-12-21 16:22:09 -08:00
Brent Simmons a5272e0b49 Bump build to 22. 2019-12-20 21:18:31 -08:00
Brent Simmons 17ba716bb4 Update to latest RSParser. 2019-12-20 21:16:10 -08:00
Maurice Parker 8fb92e119a Auto expand accounts that may have been suspended as collapsed when disclosing a feed. Issue #1440 2019-12-19 09:38:53 -07:00
Brent Simmons 3a33c38d5c Use an inner function in FeedbinAccountDelegate.refreshMissingArticles. I like this pattern because 1) it keeps the switch statement and its cases near each other, and 2) it puts all the actual processing in a single function, which makes it easier to see where processing happens. 2019-12-17 21:24:17 -08:00
Brent Simmons db564d9cf9 Remove all references to fetchArticleIDsForStatusesWithoutArticles. Use fetchArticleIDsForStatusesWithoutArticlesNewerThanCutoffDate instead. 2019-12-17 21:15:20 -08:00
Brent Simmons 6d499c8848 Bump version to 21. Lucky 21. 2019-12-17 19:19:32 -08:00
Maurice Parker 236f581d95 Update Feedbin to use fetchArticleIDsForStatusesWithoutArticlesNewerThanCutoffDate for missing articles. 2019-12-17 17:43:08 -07:00
Maurice Parker 2148bb29dc
Merge pull request #1438 from kielgillard/feedly-account-update-error
Check the account update error when updating a Feedly account…
2019-12-17 17:12:17 -07:00
Kiel Gillard 40dacd6522 Update set starred articles operation to honour database errors. 2019-12-18 09:45:30 +11:00
Kiel Gillard 5a9b138a9d Update set unraed articles operation to honour database errors. 2019-12-18 09:42:08 +11:00
Kiel Gillard 7ddcb2fc8e Add optional completions to avoid race conditions involving these marked statuses. 2019-12-18 09:41:45 +11:00
Kiel Gillard 6fb0e2e0d0 Honour the error case when ingesting read and star statuses 2019-12-18 09:32:58 +11:00
Kiel Gillard bd307cbb6c Give the FeedlySyncStarredArticlesOperation a delegate so that if the database becomes suspended, the remainder of the sync operation cancels. 2019-12-18 09:26:57 +11:00
Kiel Gillard 311f5b2e81 Check the account update error when update a Feedly account and finish with an error, indicating to its delegate that remaining operations should cancel. 2019-12-18 09:19:00 +11:00
Maurice Parker 73d6d5f5d5 Merge branch 'master' of https://github.com/brentsimmons/NetNewsWire 2019-12-17 14:29:53 -07:00
Brent Simmons 948d366a4e Created fetchArticleIDsForStatusesWithoutArticlesNewerThanCutoffDate — this gets articleIDs of articles we care about. They’re not deleted. They’re either (starred) or (unread and newer than cutoffDate). Also: it’s async. Use this instead of fetchArticleIDsForStatusesWithoutArticles, which is deprecated. 2019-12-17 13:28:48 -08:00
Maurice Parker b637a6f01b Process the article downloads in smaller transaction groups to make possible to interrupt. Issue #1437. 2019-12-17 14:28:04 -07:00