diff options
author | Thibaut Girka <thib@sitedethib.com> | 2018-07-09 07:05:29 +0200 |
---|---|---|
committer | Thibaut Girka <thib@sitedethib.com> | 2018-07-09 07:13:59 +0200 |
commit | d392020da6ff4511a2925b327de23933f374bea3 (patch) | |
tree | e86a590276a96ef72d5ed49f79998e7680969cb6 /spec/lib | |
parent | c699b2d141d7aa910bd81ae5fe881ecec7039395 (diff) | |
parent | 1ca4e51eb38de6de81cedf3ddcdaa626f1d1c569 (diff) |
Merge branch 'master' into glitch-soc/tentative-merge
Conflicts: README.md app/controllers/statuses_controller.rb app/lib/feed_manager.rb config/navigation.rb spec/lib/feed_manager_spec.rb Conflicts were resolved by taking both versions for each change. This means the two filter systems (glitch-soc's keyword mutes and tootsuite's custom filters) are in place, which will be changed in a follow-up commit.
Diffstat (limited to 'spec/lib')
-rw-r--r-- | spec/lib/feed_manager_spec.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb index db9bf12d1..8305530c5 100644 --- a/spec/lib/feed_manager_spec.rb +++ b/spec/lib/feed_manager_spec.rb @@ -195,6 +195,30 @@ RSpec.describe FeedManager do expect(FeedManager.instance.filter?(:home, status, alice.id)).to be false end + + context 'for irreversibly muted phrases' do + it 'considers word boundaries when matching' do + alice.custom_filters.create!(phrase: 'bob', context: %w(home), irreversible: true) + alice.follow!(jeff) + status = Fabricate(:status, text: 'bobcats', account: jeff) + expect(FeedManager.instance.filter?(:home, status, alice.id)).to be_falsy + end + + it 'returns true if phrase is contained' do + alice.custom_filters.create!(phrase: 'farts', context: %w(home public), irreversible: true) + alice.custom_filters.create!(phrase: 'pop tarts', context: %w(home), irreversible: true) + alice.follow!(jeff) + status = Fabricate(:status, text: 'i sure like POP TARts', account: jeff) + expect(FeedManager.instance.filter?(:home, status, alice.id)).to be true + end + + it 'matches substrings if whole_word is false' do + alice.custom_filters.create!(phrase: 'take', context: %w(home), whole_word: false, irreversible: true) + alice.follow!(jeff) + status = Fabricate(:status, text: 'shiitake', account: jeff) + expect(FeedManager.instance.filter?(:home, status, alice.id)).to be true + end + end end context 'for mentions feed' do |