Commit Graph

689 Commits

Author SHA1 Message Date
Brent Simmons dc9243dcc7 Make fetching all unread counts an operation. Cancel it when the account is suspending. Turning things like this into operations goes to fixing the dreaded 0xdead10cc crashes. 2020-01-27 23:00:48 -08:00
Nate Weaver b9bba7b614 Update RSWeb 2020-01-27 23:02:01 -06:00
Maurice Parker 118ecd01b0 Fix option set bug in AccountBehaviors. 2020-01-27 20:05:07 -07:00
Brent Simmons 61ccf6fa1f Replace use of Dictionary(uniqueKeysWithValues) with a separate function that can handle duplicate keys without crashing. Fix #1671. 2020-01-21 22:03:33 -08:00
Kiel Gillard fb69a2bc54 Fix the logging of Feedly errors. #1628. 2020-01-21 18:31:41 +11:00
Brent Simmons bca3c4216c Merge branch 'ios-candidate' of https://github.com/Ranchero-Software/NetNewsWire into ios-candidate 2020-01-19 22:25:13 -08:00
Brent Simmons 70b57b9d4d Disable files with failing Feedly tests. This is meant to be temporary. 2020-01-19 22:25:06 -08:00
Brent Simmons f9f4d70868 Make Feedly tests build again. 2020-01-19 22:19:54 -08:00
Maurice Parker 531c40a059 Escape special XML characters for external folder id. Issue #1659 2020-01-19 22:52:45 -07:00
Brent Simmons f76385ce64 Merge branch 'ios-candidate' of https://github.com/Ranchero-Software/NetNewsWire into ios-candidate 2020-01-19 16:55:46 -08:00
Brent Simmons a2bcdb1cfd Fix the progress indicator bug I had introduced in working on FeedlyOperation. Make sure FeedlyOperation calls downloadProgress.completeTask(), and make sure that all paths lead there. 2020-01-19 16:55:39 -08:00
Maurice Parker 53ba0bc9ac Fix so that Feedbin correctly stores the perma link in the correct field. 2020-01-19 17:15:21 -07:00
Brent Simmons 6181f416a4 Revise FeedlyOperation to work with MainThreadOperation properly. We’re still using inheritance — FeedlyOperation is a base class. I tried and failed to come up with a better solution. Everything other solution resulted in a lot of boilerplate code being replicated. 2020-01-19 14:19:06 -08:00
Nate Weaver 7ee1f99962 Updates for Data+RSCore changes 2020-01-18 19:18:58 -06:00
Nate Weaver b35215d03b Update for pending RSCore String updates 2020-01-17 13:45:38 -06:00
Kiel Gillard 912a3acb35 Subscribing to a Feedly feed only downloads the first page worth of content, not each and every page. Maybe related to #1408. 2020-01-17 17:16:52 +11:00
Brent Simmons e2e9a66bc5
Merge pull request #1635 from kielgillard/ios-candidate
Let Feedly users add to the uncategorized collection/folder.
2020-01-16 22:01:47 -08:00
Kiel Gillard 02cfc384c4 Makes the Feedly models immutable because they are used to represent API responses only and it improves a developer's ability to reason about how they're used in the codebase. Fixes #1629. 2020-01-17 16:47:21 +11:00
Kiel Gillard c18575ea85 Let Feedly users add to the uncategorized collection/folder. 2020-01-17 15:25:57 +11:00
Maurice Parker fb8d77fff1
Merge pull request #1631 from kielgillard/feedly-fix-tests-post-operations-surgery
Fix test failures by cancelling operations with the queue.
2020-01-16 13:45:36 -08:00
Kiel Gillard f14ba07740 Fix test failures by cancelling operations with the queue. It seems operations no longer can cancel themselves. 2020-01-17 08:27:20 +11:00
Maurice Parker 4f36ec3b11 Add Update Credetials button to the error dialog when a Feedbin credentials error happens. Issue #1441 2020-01-16 13:50:30 -07:00
Maurice Parker 61b788a1de Provide user friendly account error for 403 status code (FORBIDDEN) 2020-01-16 12:17:47 -07:00
Brent Simmons 80542bee12 Add missing calls to super.run() in FeedlyOperation subclasses. 2020-01-15 22:51:00 -08:00
Brent Simmons 57af7526da Revise Feedly tests to use MainThreadOperationQueue; get them building again. They don’t pass, but at least they build. 2020-01-15 22:10:06 -08:00
Brent Simmons 39db00c022 Use MainThreadOperationQueue with Feedly syncing. 2020-01-15 21:30:37 -08:00
Nate Weaver 6eac3781ba Update to latest RSCore
Update use of OMPLString().
2020-01-13 22:20:57 -06:00
Kiel Gillard 325f220181 Ignore the remote article status if the sync database contains a pending (and therefore more recent) status. Fixes #1516. 2020-01-13 18:04:58 +11:00
Nate Weaver e94985e7f2 Update to latest RSCore 2020-01-12 18:26:41 -06:00
Nate Weaver 42b4261793 Treat empty URLs as nil
Fixes #1612.
2020-01-12 03:29:56 -06:00
Kiel Gillard 745b5d8cb8 Fetch article contents from Feedly by ids rather than paging through streams up until the last successful sync date. Issues #1453 #1398 #1408 #1429 2020-01-11 10:45:45 +11:00
Brent Simmons 4ab5c25844 Add createStatusesIfNeeded API to Account, to use with syncing. (Needed for Feedly syncing, and could very well be needed for other systems too.) 2020-01-09 22:27:29 -08:00
Maurice Parker 7824939c30 Make OPML generate in a consistent order when the Web Feed name is the same. Issue #1545 2020-01-06 13:58:51 -07:00
Kiel Gillard 6922b6ddec Use string-based key paths instead of Swift key paths for FeedlyOperation. #1481 2020-01-06 08:59:08 +11:00
Maurice Parker c3fbf88fbb Add check so that we don't update article statuses for articles that we have pending statuses to send. Issue #1515 2020-01-02 18:21:18 -07:00
Brent Simmons e773c11571
Merge pull request #1509 from timothyekl/account-test-api-updates
Update Account tests for new async API
2020-01-02 16:12:17 -08:00
Tim Ekl 44e920b18b Don't explicitly name error variables
Following the resolution of #1512, start using the implicit `error`
variable inside `catch` blocks instead of explicitly declaring `e`
everywhere.
2020-01-02 13:31:06 -08:00
Kiel Gillard 2ee50054dc Indicate FeedlyOperations are asynchronous. 2020-01-02 10:00:09 +11:00
Kiel Gillard f455bcec16 Models the feed website url of feedly articles as an optional since it seems the Feedly API will not always provide one. Issue #1449. 2020-01-02 09:34:24 +11:00
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
Brent Simmons 51faf77e59 Update isExecuting and isFinished in a way that should make NSOperationQueue happy. Hopefully this fixes a mystery crash bug. 2019-12-31 15:40:05 -08: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