Commit Graph

589 Commits (d1b20ea8f70ecc44f78315c1bba1f7e16c0bfa15)

Author SHA1 Message Date
Matt Jankowski 2866106ec1
Reduce factory creation in `spec/models/account_statuses_cleanup_policy` (#28361) 1 year ago
Matt Jankowski 6b6586f5d0
Add `CustomFilterKeyword#to_regex` method (#28893) 1 year ago
Matt Jankowski b0207d7757
Add coverage for `Tag.recently_used` scope (#28850) 1 year ago
Matt Jankowski 18004bf227
Add `Account.matches_uri_prefix` scope and use in activitypub/followers_synchronizations controller (#28820) 1 year ago
Matt Jankowski 1480573c83
Add `Account.auditable` scope, fix N+1 in admin/action_logs#index (#28812) 1 year ago
Matt Jankowski d0b3bc23d7
Remove unused `matches_domain` scopes on Account, DomainAllow, DomainBlock (#28803) 1 year ago
Matt Jankowski 07e10e3747
Combine assertions about same setup in `Account#suspend!` spec (#28787) 1 year ago
Matt Jankowski 1b0cb3b54d
Announcement reactions query spec improvement and refactor (#28768) 1 year ago
Claire 98b5f85f10
Rename and refactor `User#confirm!` to `User#mark_email_as_confirmed!` (#28735) 1 year ago
Matt Jankowski cd37048439
Move followable_by coverage to suggestions (#28697) 1 year ago
Matt Jankowski 8b26614fa7
Combine results include check in spec/models/account (#28471) 1 year ago
Matt Jankowski 0a7cff53c2
Add coverage for `Account.followable_by` scope (#28689) 1 year ago
Matt Jankowski 543d7890fd
Use normalizes to prepare `User` values (#28650)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
1 year ago
Matt Jankowski 00341c70ff
Use Sidekiq `fake!` instead of `inline!` in specs (#25369) 1 year ago
Claire 10203bd57a
Clean up `Setting` model and remove dead code (#28661) 1 year ago
Jean Boussier 1781849884
Inline what remains of the rails-settings-cached gem (#28618)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
1 year ago
Matt Jankowski 5dc634796a
Misc coverage improvements re: sidekiq/inline (#28651) 1 year ago
Matt Jankowski e677eb164c
Remove unused `Announcement#time_range?` (#28648) 1 year ago
Matt Jankowski 3e43cd095c
Remove unused scope `Announcement.without_muted` (#28645) 1 year ago
Matt Jankowski aa6d07dbd9
Use normalizes to prepare CustomEmoji `domain` value (#28624) 1 year ago
Matt Jankowski 12bed81187
Add validation specs to `CustomFilter` model (#28600) 1 year ago
Matt Jankowski bb8077e784
Fix `RSpec/LetSetup` cop in models/account_status_cleanup_policy (#28470) 1 year ago
Matt Jankowski e6e217fedd
Clean up `tagged_with_*` Status specs, fix `RSpec/LetSetup` cop (#28462) 1 year ago
Matt Jankowski c753b1ad35
Clean up of `RSpec/LetSetup` within `spec/models` (#28444) 1 year ago
Claire 6fed0fcbaa
Remove unneeded settings cleanup from specs (#28425) 1 year ago
Matt Jankowski af366f65ee
Add spec coverage for `models/form/custom_emoji_batch` class (#28388) 1 year ago
Matt Jankowski 1820bad646
Fix `Performance/StringIdentifierArgument` cop (#28399) 1 year ago
Matt Jankowski 28e1a7a394
Improve spec coverage for `models/announcement` class (#28350) 1 year ago
Matt Jankowski 89a8e6e622
Remove 2x double subject call in `models/form/account_batch` spec (#28209) 1 year ago
Matt Jankowski 5631f139c1
Fix `Lint/SymbolConversion` cop (#28175) 1 year ago
Matt Jankowski 440b80b2e7
Model concerns organization into module namespaces (#28149) 1 year ago
Matt Jankowski e48ecd2929
Remove `default_scope` from `Admin::ActionLog` (#28026) 1 year ago
Matt Jankowski 973597c6f1
Consolidate configuration of `Sidekiq::Testing.fake!` setup (#28046) 1 year ago
Eugen Rochko cdc57c74b7
Fix unsupported time zone or locale preventing sign-up (#28035)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
1 year ago
Matt Jankowski 371f355719
Reduce `.times` usage in `AccountStatusesCleanupPolicy` (#27947) 1 year ago
Matt Jankowski d2aacea8da
Reduce `.times` usage in AccountSearch spec, use constant for default limit (#27946) 1 year ago
Matt Jankowski 00c6ebd86f
Reduce `.times` usage in `StatusPin` and add `PIN_LIMIT` constant in validator (#27945) 1 year ago
Matt Jankowski b2c5b20ef2
Fix `RSpec/AnyInstance` cop (#27810) 1 year ago
Matt Jankowski b7807f3d84
Use `normalizes` to prepare `Webhook#events` value (#27605) 1 year ago
Matt Jankowski 63c9102f8a
Fix `RSpec/MessageChain` cop (#27776) 1 year ago
Matt Jankowski 69d00e2721
Fix `RSpec/InstanceVariable` cop (#27766) 1 year ago
Matt Jankowski ce91d14d48
Fix `Style/WordArray` cop (#27770) 1 year ago
Matt Jankowski 49e2772064
Fix `RSpec/MessageSpies` cop (#27751) 1 year ago
Matt Jankowski cfa14ec6d1
Fix `Lint/EmptyBlock` cop (#27748) 1 year ago
Matt Jankowski b06284c572
Fix `RSpec/HookArgument` cop (#27747) 1 year ago
Matt Jankowski 949f5eb860
Fix `RSpec/MetadataStyle` cop in spec/ (#27729) 1 year ago
Claire 93e4cdc31b
Fix hashtag matching pattern matching some URLs (#27584) 1 year ago
Claire bcae744275
Fix some link anchors being recognized as hashtags (#27271) 1 year ago
Matt Jankowski b0213472df
Validate allowed schemes on preview card URLs (#27485) 1 year ago
Matt Jankowski bcd0171e5e
Fix `Lint/UselessAssignment` cop (#27472) 1 year ago
Matt Jankowski a1b27d8b61
Fix `Naming/VariableNumber` cop (#27447) 1 year ago
Victor Lee c4bddc9855
Add spec for poll model (#23399)
Co-authored-by: Nick Schonning <nschonni@gmail.com>
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
1 year ago
Claire 340c390849
Fix crash when filtering for “dormant” relationships (#27306) 1 year ago
Matt Jankowski c676bc91e9
Dont match mention in url query string (#25656)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
1 year ago
Claire ceb365c419
Fix boosts of local users being filtered in account timelines (#27204) 1 year ago
Claire 1f99d86287
Fix blocked domain appears from account feed (#26823)
Co-authored-by: Jeong Arm <kjwonmail@gmail.com>
Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
1 year ago
Christian Schmidt ea31929776
Fix invalid Content-Type header for WebP images (#26773) 1 year ago
Claire 16681e0f20
Add admin notifications for new Mastodon versions (#26582) 1 year ago
jsgoldstein 30c191aaa0
Add new public status index (#26344)
Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
1 year ago
Nick Schonning b970ed6098
Update rubocop and rubocop-rspec (#26329) 2 years ago
Matt Jankowski c363978782
Spec media attachment speedups (#25416) 2 years ago
Christian Schmidt f2257069b2
Fix AVIF attachments (#26264) 2 years ago
Matt Jankowski 6f1fa1364f
Fix `RSpec/EmptyExampleGroup` cop (#24735) 2 years ago
Claire 1e3b19230a
Add stricter protocol fields validation for accounts (#25937) 2 years ago
Matt Jankowski c75df62ccc
Fix `RSpec/SubjectDeclaration` cop (#25312) 2 years ago
Claire dc8f1fbd97
Merge pull request from GHSA-9928-3cp5-93fm
* Fix attachments getting processed despite failing content-type validation

* Add a restrictive ImageMagick security policy tailored for Mastodon

* Fix misdetection of MP3 files with large cover art

* Reject unprocessable audio/video files instead of keeping them unchanged
2 years ago
Matt Jankowski 05f9e39b32
Fix `RSpec/VerifiedDoubles` cop (#25469) 2 years ago
Claire dd07393e75
Fix user settings not getting validated (#25508) 2 years ago
Matt Jankowski 4c5aa0e470
Update rubocop-rspec to version 2.22.0, fix `RSpec/IndexedLet` cop (#24698) 2 years ago
Daniel M Brasil d9c6f70cc6
Fix `ArgumentError` in `/api/v1/admin/accounts/:id/action` (#25386) 2 years ago
Matt Jankowski ae9f5379d1
Reduce factory data created in spec/models/trends/statuses spec (#25410) 2 years ago
Matt Jankowski 62c996b52d
Reduce `RSpec/MultipleExpectations` cop max to 8 (#25313) 2 years ago
Matt Jankowski c94bb9ba9a
Disable paperclip processing in specs (#25359) 2 years ago
Matt Jankowski 6c0e3f490a
Fix RSpec/MissingExampleGroupArgument cop (#25310) 2 years ago
Matt Jankowski c42591356d
Fix `RSpec/DescribedClass` cop (#25104) 2 years ago
Matt Jankowski b22bfae4f9
Add coverage for `DomainBlock#public_domain` method (#25283) 2 years ago
Claire 8884d1ece0
Add support for importing lists (#25203) 2 years ago
Matt Jankowski d2e5430d4a
Fix RSpec/ExpectChange cop (#25101) 2 years ago
Matt Jankowski b896b16cb3
Fix RSpec/PredicateMatcher cop (#25102) 2 years ago
Emelia Smith 19f9098551
Allow reports with long comments from remote instances, but truncate (#25028) 2 years ago
Nick Schonning 99e2e9b81f
Fix minor typos in comments and spec names (#21831) 2 years ago
Claire 3ed3d54bf3
Fix reports not being closed when performing batch suspensions (#24988) 2 years ago
Matt Jankowski c97b611b6b
Fix RSpec/InferredSpecType cop (#24736) 2 years ago
Matt Jankowski 710745e16b
Fix RSpec/ContextWording cop (#24739) 2 years ago
Claire 1e75eb690d
Fix own posts not getting delivered to own lists (#24810) 2 years ago
Matt Jankowski 3df665fd23
Fix Lint/ConstantDefinitionInBlock cop (#24763) 2 years ago
Matt Jankowski a0c9f2447e
Fix Performance/MethodObjectAsBlock cop (#24798) 2 years ago
Matt Jankowski 570079f8ce
Fix Performance/TimesMap cop (#24789) 2 years ago
Claire 6693a4fe7c
Change lists to be able to include accounts with pending follow requests (#19727) 2 years ago
Claire 32a030dd74
Rewrite import feature (#21054) 2 years ago
Matt Jankowski 274d561430
Enable local account key generation spec (#24728) 2 years ago
Matt Jankowski 4cfe52635c
Add pending spec for User.those_who_can (#24724) 2 years ago
Nick Schonning 5841f1af8c
Autofix Rubocop RSpec/MatchArray (#24675) 2 years ago
Nick Schonning a3393d0d07
Autofix Rubocop RSpec/MatchArray (#24050) 2 years ago
Heitor de Melo Cardozo bc75e62ca6
Change moderation search an account using the username with @ (#24242) 2 years ago
Christian Schmidt b4f38edf74
Wrong type for user setting when default is defined by lambda (#24321) 2 years ago
Eugen Rochko a9b5598c97
Change user settings to be stored in a more optimal way (#23630)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2 years ago
Christian Schmidt bd047acc35
Replace `Status#translatable?` with language matrix in separate endpoint (#24037) 2 years ago
Matt Jankowski 688287c59d
Coverage improvement round-out following up previous work (#23987) 2 years ago
Matt Jankowski 506b16cf59
Pending example models minimal coverage (#23912) 2 years ago
Matt Jankowski cd99fa8ceb
Fabricator specs (#23925) 2 years ago
Matt Jankowski c40d5e5a8f
Misc coverage improvements for validators (#23928) 2 years ago
Matt Jankowski f9c2213ae5
Models specs coverage (#23940) 2 years ago
Christian Schmidt 5a8c651e8f
Only offer translation for supported languages (#23879) 2 years ago
Matt Jankowski af578e8ce0
Fix deprecation warning about merging conditions (#23618) 2 years ago
Matt Jankowski 4bb39ac3c3
Fix single-record invalid condition on PollVote (#23810) 2 years ago
Nick Schonning 84cc805cae
Enable Style/FrozenStringLiteralComment for specs (#23790) 2 years ago
Nick Schonning 717683d1c3
Autofix Rubocop remaining Layout rules (#23679) 2 years ago
Nick Schonning 5116347eb7
Autofix Rubocop RSpec/BeEq (#23740) 2 years ago
Nick Schonning bf785df9fe
Audofix Rubocop Style/WordArray (#23739) 2 years ago
Nick Schonning 4552685f6b
Autofix Rubocop RSpec/LeadingSubject (#23670) 2 years ago
Nick Schonning 38a1d8bb85
Autofix Rubocop RSpec/ImplicitSubject (#23721) 2 years ago
Nick Schonning bd1d57c230
Autofix Rubocop RSpec/EmptyLineAfterSubject (#23719) 2 years ago
Nick Schonning 65ba0d92ef
Enable Rubocop RSpec/NotToNot (#23723) 2 years ago
Nick Schonning 81ad6c2e39
Autofix Rubocop Style/StringLiterals (#23695) 2 years ago
Nick Schonning ac3561098e
Autofix Rubocop RSpec/LetBeforeExamples (#23671) 2 years ago
Nick Schonning 3680e032b4
Autofix Rubocop RSpec/EmptyLineAfterFinalLet (#23707) 2 years ago
Nick Schonning b4cbfff3eb
Autofix Rubocop RSpec/ExcessiveDocstringSpacing (#23666) 2 years ago
Nick Schonning a7db0b41cd
Autofix Rubocop Lint/ParenthesesAsGroupedExpression (#23682) 2 years ago
Nick Schonning c0a645f647
Autofix Rubocop RSpec/ExampleWording (#23667) 2 years ago
Nick Schonning 54318dcd6d
Autofix Rubocop RSpec/ClassCheck (#23685) 2 years ago
Nick Schonning 6d42820e5d
Autofix Rubocop Lint/AmbiguousOperator (#23680) 2 years ago
Nick Schonning 669f6d2c0a
Run rubocop formatting except line length (#23632) 2 years ago
Nick Schonning 68b1071f86
Autofix Rubocop RSpec/BeNil (#23653) 2 years ago
Nick Schonning 0592937264
Apply Rubocop Rails/WhereNot (#23448)
* Apply Rubocop Rails/WhereNot

* Update spec for where.not
2 years ago
Nick Schonning ed570050c6
Autofix Rails/EagerEvaluationLogMessage (#23429)
* Autofix Rails/EagerEvaluationLogMessage

* Update spec for debug block syntax
2 years ago
Claire 6883fddb19
Fix account activation being triggered before email confirmation (#23245)
* Add tests

* Fix account activation being triggered before email confirmation

Fixes #23098
2 years ago
Partho Ghosh 115ab2869b
Fix ・ detection in hashtag regex to construct hashtag correctly (#22888)
* Fix ・ detection in hashtag regex to construct hashtag correctly

* Fixed rubocop liniting issues

* More rubocop linting fix
2 years ago
Claire 70415714f1
Add follow request banner on account header (#20785)
* Add requested_by to relationship maps

* Display whether an account has requested to follow you on their profile
2 years ago
Jeong Arm d412147d02
Save avatar or header correctly even if other one fails (#18465)
* Save avatar or header correctly if other one fails

* Fix test
2 years ago
Claire b59fb28e90
Fix 500 error when trying to migrate to an invalid address (#21462)
* Fix 500 error when trying to migrate to an invalid address

* Add tests
2 years ago
David Leadbeater 69378eac99
Don't allow URLs that contain non-normalized paths to be verified (#20999)
* Don't allow URLs that contain non-normalized paths to be verified

This stops things like https://example.com/otheruser/../realuser where
"/otheruser" appears to be the verified URL, but the actual URL being
verified is "/realuser" due to the "/../".

Also fix a test to use 'https', so it is testing the right thing, now
that since #20304 https is required.

* missing do
2 years ago
Eugen Rochko b31afc6294
Fix error when passing unknown filter param in REST API (#20626)
Fix #19156
2 years ago
Emily Strickland c2231539c7
Test blank account field verifiability (#20458)
* Test blank account field verifiability

This change tests the need for #20428, which ensures that we guard against a situation in which `at_xpath` returns `nil`.

* Test verifiability of blank fields for remote account profiles

This adds a counterpart test for remote account profiles' fields' verifiability when those fields are blank. I previously added the same test for local accounts.
2 years ago
Eugen Rochko 9965a23b04
Change link verification to ignore IDN domains (#20295)
Fix #3833
2 years ago
Eugen Rochko e98833748e
Fix being able to spoof link verification (#20217)
- Change verification to happen in `default` queue
- Change verification worker to only be queued if there's something to do
- Add `link` tags from metadata fields to page header of profiles
2 years ago
luzpaz 6ba52306f9
Fix typos (#19849)
Found via `codespell -q 3 -S ./yarn.lock,./CHANGELOG.md,./AUTHORS.md,./config/locales,./app/javascript/mastodon/locales -L ba,followings,keypair,medias,pattens,pixelx,rememberable,ro,te`
2 years ago
Roni Laukkarinen 36b0ff57b7
Fix grammar (#20106) 2 years ago
Eugen Rochko d0ba77047e
Change max. thumbnail dimensions to 640x360px (360p) (#19619) 2 years ago
Eugen Rochko 45ebdb72ca
Add support for language preferences for trending statuses and links (#18288) 2 years ago
Eugen Rochko 9f65909f42
Change public timelines to be filtered by current locale by default (#19291)
In the absence of an opt-in to multiple specific languages in the
preferences, it makes more sense to filter by the user's presumed
language only (interface language or `lang` override)
2 years ago
Eugen Rochko 50948b46aa
Add ability to filter followed accounts' posts by language (#19095) 2 years ago
Eugen Rochko 0412a4d03e
Change e-mail domain blocks to match subdomains of blocked domains (#18979) 3 years ago
Eugen Rochko c3f0621a59
Add ability to follow hashtags (#18809) 3 years ago
Eugen Rochko e7aa2be828
Change how hashtags are normalized (#18795)
* Change how hashtags are normalized

* Fix tests
3 years ago
Eugen Rochko 44b2ee3485
Add customizable user roles (#18641)
* Add customizable user roles

* Various fixes and improvements

* Add migration for old settings and fix tootctl role management
3 years ago
Claire 02851848e9
Revamp post filtering system (#18058)
* Add model for custom filter keywords

* Use CustomFilterKeyword internally

Does not change the API

* Fix /filters/edit and /filters/new

* Add migration tests

* Remove whole_word column from custom_filters (covered by custom_filter_keywords)

* Redesign /filters

Instead of a list, present a card that displays more information and handles
multiple keywords per filter.

* Redesign /filters/new and /filters/edit to add and remove keywords

This adds a new gem dependency: cocoon, as well as a npm dependency:
cocoon-js-vanilla. Those are used to easily populate and remove form fields
from the user interface when manipulating multiple keyword filters at once.

* Add /api/v2/filters to edit filter with multiple keywords

Entities:
- `Filter`: `id`, `title`, `filter_action` (either `hide` or `warn`), `context`
  `keywords`
- `FilterKeyword`: `id`, `keyword`, `whole_word`

API endpoits:
- `GET /api/v2/filters` to list filters (including keywords)
- `POST /api/v2/filters` to create a new filter
  `keywords_attributes` can also be passed to create keywords in one request
- `GET /api/v2/filters/:id` to read a particular filter
- `PUT /api/v2/filters/:id` to update a new filter
  `keywords_attributes` can also be passed to edit, delete or add keywords in
   one request
- `DELETE /api/v2/filters/:id` to delete a particular filter
- `GET /api/v2/filters/:id/keywords` to list keywords for a filter
- `POST /api/v2/filters/:filter_id/keywords/:id` to add a new keyword to a
   filter
- `GET /api/v2/filter_keywords/:id` to read a particular keyword
- `PUT /api/v2/filter_keywords/:id` to edit a particular keyword
- `DELETE /api/v2/filter_keywords/:id` to delete a particular keyword

* Change from `irreversible` boolean to `action` enum

* Remove irrelevent `irreversible_must_be_within_context` check

* Fix /filters/new and /filters/edit with update for filter_action

* Fix Rubocop/Codeclimate complaining about task names

* Refactor FeedManager#phrase_filtered?

This moves regexp building and filter caching to the `CustomFilter` class.

This does not change the functional behavior yet, but this changes how the
cache is built, doing per-custom_filter regexps so that filters can be matched
independently, while still offering caching.

* Perform server-side filtering and output result in REST API

* Fix numerous filters_changed events being sent when editing multiple keywords at once

* Add some tests

* Use the new API in the WebUI

- use client-side logic for filters we have fetched rules for.
  This is so that filter changes can be retroactively applied without
  reloading the UI.
- use server-side logic for filters we haven't fetched rules for yet
  (e.g. network error, or initial timeline loading)

* Minor optimizations and refactoring

* Perform server-side filtering on the streaming server

* Change the wording of filter action labels

* Fix issues pointed out by linter

* Change design of “Show anyway” link in accordence to review comments

* Drop “irreversible” filtering behavior

* Move /api/v2/filter_keywords to /api/v1/filters/keywords

* Rename `filter_results` attribute to `filtered`

* Rename REST::LegacyFilterSerializer to REST::V1::FilterSerializer

* Fix systemChannelId value in streaming server

* Simplify code by removing client-side filtering code

The simplifcation comes at a cost though: filters aren't retroactively
applied anymore.
3 years ago
Eugen Rochko a2871cd747
Add administrative webhooks (#18510)
* Add administrative webhooks

* Fix error when webhook is deleted before delivery worker runs
3 years ago
Claire 440eb71310
Change unapproved and unconfirmed account to not be accessible in the REST API (#17530)
* Change unapproved and unconfirmed account to not be accessible in the REST API

* Change Account#searchable? to reject unconfirmed and unapproved users

* Disable search for unapproved and unconfirmed users in Account.search_for

* Disable search for unapproved and unconfirmed users in Account.advanced_search_for

* Remove unconfirmed and unapproved accounts from Account.searchable scope

* Prevent mentions to unapproved/unconfirmed accounts

* Fix some old tests for Account.advanced_search_for

* Add some Account.advanced_search_for tests for existing behaviors

* Add some tests for Account.search_for

* Add Account.advanced_search_for tests unconfirmed and unapproved accounts

* Add Account.searchable tests

* Fix Account.without_unapproved scope potentially messing with previously-applied scopes

* Allow lookup of unconfirmed/unapproved accounts through /api/v1/accounts/lookup

This is so that the API can still be used to check whether an username is free
to use.
3 years ago
Eugen Rochko 3917353645
Fix single Redis connection being used across all threads (#18135)
* Fix single Redis connection being used across all Sidekiq threads

* Fix tests
3 years ago