Commit Graph
100 Commits
Author SHA1 Message Date
evazion 43591e0c2d tests: add more wiki pages controller tests. 2017-02-06 18:48:37 -06:00
evazion 5c871aee64 tests: add more pools controller tests. 2017-02-06 18:48:37 -06:00
evazion dfb8d0106d tests: add more posts controller tests. 2017-02-06 18:48:37 -06:00
evazion 09ffac07ea tests: add more users controller tests. 2017-02-06 18:48:37 -06:00
evazion 3edd814be5 tests: add iqdb queries controller tests. 2017-02-06 18:48:37 -06:00
evazion e26fb61ee9 tests: add explore/posts controller tests. 2017-02-06 18:48:36 -06:00
evazion 443c41cff2 tests: add meta searches controller tests. 2017-02-06 18:48:36 -06:00
evazion 30c3a52187 tests: add mod actions controller test. 2017-02-06 18:48:36 -06:00
evazion 101a03e797 tests: add related tags controller tests. 2017-02-06 18:48:36 -06:00
evazion 423dfc13b8 tests: add sources controller tests. 2017-02-06 18:48:36 -06:00
evazion 142dc05d0c tests: add note previews controller tests. 2017-02-06 18:48:35 -06:00
evazion 77b4dfcdfb tests: add artist controller tests. 2017-02-06 18:48:35 -06:00
evazion 490864e24d tests: add saved searches controller tests. 2017-02-06 18:48:35 -06:00
evazion 64b4004bbf tests: add favorite groups controller tests. 2017-02-06 18:48:35 -06:00
evazion ed451b7199 tests: add reports controller tests. 2017-02-06 18:48:35 -06:00
evazion d74503ae05 tests: add misc controller tests. 2017-02-06 18:48:35 -06:00
evazion 8c75f74ca5 tests: update simplecov config. 2017-02-04 22:17:39 -06:00
evazion e8cf417e9c tests: update gems to latest versions.
Also fix a few things that broke under shoulda-matchers 3.1.1.
2017-02-04 22:17:15 -06:00
evazion dd5974bf8c test_helper.rb: use MemcacheMock. 2017-02-04 17:18:52 -06:00
evazion 9b16c45edc test_helper.rb: factor out upload test helpers. 2017-02-04 17:18:52 -06:00
evazion 1511118bba test_helper.rb: remove unused assert_authentication_* helpers. 2017-02-04 17:18:51 -06:00
evazion beddc34958 tests: set Delayed::Worker.delay_jobs = false globally. 2017-02-04 17:18:51 -06:00
evazion 98b0b2c5d8 tests: fix Net::HTTP::Persistent::Error: too many connection resets.
Works around connection reset errors in the test suite by disabling
persistent connections.

  20) Error:
Sources::PixivTest#test_: in all cases fetching source data for a new manga image should get the tags. :
Net::HTTP::Persistent::Error: too many connection resets (due to closed stream - IOError) after 0 requests on 47071328584700, last used 1.842702476 seconds ago
  app/logical/pixiv_web_agent.rb:46:in `build'
  app/logical/sources/strategies/pixiv.rb:104:in `agent'
  app/logical/sources/strategies/pixiv.rb:72:in `get'
  app/logical/sources/site.rb:6:in `get'
  test/unit/sources/pixiv_test.rb:7:in `get_source'
  test/unit/sources/pixiv_test.rb:64:in `block (3 levels) in <class:PixivTest>'

ref: github.com/sparklemotion/mechanize/issues/123
ref: http://www.rubydoc.info/gems/mechanize/Mechanize#retry_change_requests%3D-instance_method
2017-02-04 17:07:00 -06:00
evazion cd3b09b10a tag_alias_correction_test.rb: fix assert_nil deprecation warning.
Use assert_nil if expecting nil from /home/danbooru/src/danbooru/test/unit/tag_alias_correction_test.rb:29
in `block (3 levels) in <class:TagAliasCorrectionTest>'. This will fail in MT6.
2017-02-04 17:06:59 -06:00
evazion 9429f54632 alias_and_implication_importer_test.rb: fix test failures.
1) Error:
AliasAndImplicationImporterTest#test_: The alias and implication importer given a valid list should process it. :
NoMethodError: undefined method `role' for nil:NilClass
  app/models/tag_alias.rb:124:in `rescue in process!'
  app/models/tag_alias.rb:135:in `process!'
  app/models/tag_alias.rb:93:in `approve!'
  app/logical/alias_and_implication_importer.rb:90:in `block (2 levels) in parse'
  app/logical/alias_and_implication_importer.rb:82:in `map'
  app/logical/alias_and_implication_importer.rb:82:in `block in parse'
  app/logical/alias_and_implication_importer.rb:81:in `parse'
  app/logical/alias_and_implication_importer.rb:13:in `process!'
  test/unit/alias_and_implication_importer_test.rb:24:in `block (4 levels) in <class:AliasAndImplicationImporterTest>'
  test/unit/alias_and_implication_importer_test.rb:23:in `block (3 levels) in <class:AliasAndImplicationImporterTest>'
2017-02-04 17:06:59 -06:00
evazion a327854017 Fix post_update_count increment test.
7) Failure:
PostTest#test_: Tagging: A post that has been updated should increment the updater's post_update_count. [/home/danbooru/src/danbooru/test/unit/post_test.rb:1010]:
"CurrentUser.post_update_count" didn't change by 1.
Expected: 1
  Actual: 3
2017-02-03 04:04:02 -06:00
evazion e98e7f1ea7 Fix note_update_count increment test.
5) Failure:
NoteTest#test_: In all cases updating a note should increment the updater's note_update_count. [/home/danbooru/src/danbooru/test/unit/note_test.rb:113]:
"CurrentUser.note_update_count" didn't change by 1.
Expected: 1
  Actual: 0
2017-02-03 04:03:44 -06:00
evazion 27817cffcf Fix saved search test.
16) Failure:
SavedSearchTest#test_: Fetching the post ids for a search with a name should return a list of ids. [/home/danbooru/src/danbooru/test/unit/saved_search_test.rb:31]:
Expected: [1, 2, 3, 4]
  Actual: []
2017-02-03 04:03:44 -06:00
evazion ace7d0c12d Fix moving saved searches tests.
4) Failure:
TagAliasTest#test_: A tag alias should move saved searches. [/home/danbooru/src/danbooru/test/unit/tag_alias_test.rb:80]:
Expected: "123 bbb 456"
  Actual: "123 ... 456"

 36) Failure:
Moderator::TagBatchChangeTest#test_: a tag batch change should move saved searches. [/home/danbooru/src/danbooru/test/unit/moderator/tag_batch_change_test.rb:40]:
Expected: "123 456 bbb"
  Actual: "123 ... 456"
2017-02-03 04:03:44 -06:00
evazion 72502dbe2f Fix comment voting tests.
2) Error:
CommentTest#test_: A comment created by an unlimited user should not allow duplicate votes. :
ActiveRecord::RecordInvalid: Validation failed: You have already voted for this comment
    app/models/comment.rb:142:in `vote!'
    test/unit/comment_test.rb:164:in `block (3 levels) in <class:CommentTest>'

  3) Error:
CommentTest#test_: A comment created by an unlimited user should not allow upvotes by the creator. :
ActiveRecord::RecordInvalid: Validation failed: You cannot upvote your own comments
    app/models/comment.rb:142:in `vote!'
    test/unit/comment_test.rb:179:in `block (3 levels) in <class:CommentTest>'
2017-02-03 04:03:44 -06:00
evazion 3ee7f0770f Fix posts controller api test.
1) Failure:
    PostsControllerTest#test_: The posts controller for api calls passing the api limit should work. [/home/danbooru/src/danbooru/test/functional/posts_controller_test.rb:34]:
    Expected response to be a <429>, but was <200>.
    Expected: 429
      Actual: 200
2017-02-03 04:03:43 -06:00
evazion 43086634cf hotkeys: fix shift+r => mark forum as read.
Also fix issue with a note handler being rebound instead of unbound.
2017-02-03 03:48:22 -06:00
evazion d71136ce72 Disable left/right for prev/next page on /posts/:id.
Interferes with horizontal scrolling of wide images.
2017-02-03 03:40:32 -06:00
evazion 50b793d129 Don't send failed uploads to IQDB (possible fix for #2867). 2017-02-02 01:26:59 -06:00
evazion 558e4e5443 Add filetype: metatag. 2017-02-02 00:53:56 -06:00
evazion 74cbcb3f80 Update json, rubyracer gems for ruby-2.4.
Fixes a couple incompatibilities with ruby 2.4.

ref: github.com/flori/json/issues/303.
ref: github.com/cowboyd/therubyracer/issues/430
2017-01-27 05:22:05 -06:00
evazion 8d65ae840b hotkeys: document new bindings. 2017-01-24 02:46:01 -06:00
evazion cfeb95c8a8 hotkeys: add left arrow, right arrow bindings for prev/next page. 2017-01-24 02:46:01 -06:00
evazion 7571cda640 hotkeys: add E to edit, shift+D to delete to artists, pools, wiki, forum. 2017-01-24 02:46:00 -06:00
evazion c3fa653fc5 hotkeys: refactor to use .on(), namespaces.
* Use .on() instead of .bind() because bind is deprecated in jquery 3.0.
* Ensure enable-js-navigation is always respected.
* Namespace keybindings so they may be disabled by userscripts with
  e.g. $(document).off("keydown.danbooru") or $(document).off("next_page").
2017-01-24 02:45:55 -06:00
evazion ecf22adc7d /comments/search: add more search params; style as inline form. 2017-01-23 22:13:00 -06:00
evazion caaff24112 /comments?group_by=comment: add is_sticky/is_deleted/do_not_bump_post/order params. 2017-01-23 22:13:00 -06:00
evazion a7333f4069 dotenv: add sample .env file. 2017-01-23 18:07:52 -06:00
evazion 74bbd45cdf dotenv: enable overriding database settings. 2017-01-23 18:07:52 -06:00
evazion 1aa2316a9e dotenv: enable overriding rails secret token / session key. 2017-01-23 18:07:51 -06:00
evazion f33108416e dotenv: enable overriding danbooru_local_config.rb with env vars. 2017-01-23 18:07:51 -06:00
evazion a72df4133e dotenv: add config/unicorn/unicorn.rb, Procfile. 2017-01-23 18:07:51 -06:00
evazion 3eb525ad01 dotenv: add gem. 2017-01-23 16:38:14 -06:00
evazion 601b439f96 Add order:comment_bumped, order:comment_bumped_asc metatags. 2017-01-21 11:10:40 +00:00
evazion c6966268a2 Remove 'reason' from name change request form; update copy. 2017-01-19 23:42:39 +00:00
evazion afb8eeea30 Fix exploit making user name change reasons being public in API. 2017-01-19 23:41:36 +00:00
evazion 7486bb0add Fix #2851: Account deletion should remove name change requests.
Hides name change requests for deleted users (username matches /user_[0-9]+~*/).
2017-01-19 22:32:13 +00:00
evazion f0bdf565fe Name changes: add listing/new/help links to subnav. 2017-01-15 05:03:09 +00:00
evazion d31a0c23f3 Name changes: add API endpoints for /user_name_change_requests. 2017-01-15 05:03:09 +00:00
evazion 9e9fdcb55d Name changes: make /user_name_change_requests member+; add reason/status/date. 2017-01-15 05:03:09 +00:00
evazion 047d3675e9 Name changes: don't show user feedback/stats for processed requests. 2017-01-15 05:03:09 +00:00
evazion 66e30b323c Name changes: remove delete request button. 2017-01-15 05:03:08 +00:00
evazion f57f352838 Name changes: format processed requests more nicely. 2017-01-15 04:22:00 +00:00
evazion 5f4535c408 Fix #2839: "Original" tag shows up twice in Pixiv source data 2017-01-14 21:14:06 +00:00
evazion cf046eecbf Fix ip addr search tests. 2017-01-12 09:28:52 +00:00
evazion 26c193dfb3 Change post_appeals.creator_ip_addr from integer to inet.
The existing values are garbage, rails stored e.g. "87.126.98.245" as
"87.126.98.245".to_i => 87. The column is nulled to indicate these IPs
are unknown.
2017-01-12 09:28:21 +00:00
evazion 3ca638bc92 Add IP addr indexes on comments & artist/artcomm/wikipage versions. 2017-01-12 09:28:21 +00:00
evazion e8f71739be IpAddrSearch: search flags/appeals/artcomms/artists for IPs. 2017-01-12 09:28:21 +00:00
evazion 4848f18455 IpAddrSearch: fix pool_versions exception.
Fix pool_versions exception if PoolArchive db isn't set up. Prefer
ActiveRecord over raw sql so we can get real user objects so that the
view can use link_to_user.
2017-01-12 09:28:21 +00:00
evazion fde7829bf6 IpAddrSearch: simplify search_by_user_name, remove unused @errors. 2017-01-12 09:15:15 +00:00
evazion bdf3366bcf Link IP addresses to IP searches. 2017-01-12 09:15:14 +00:00
evazion 1f325c19da Show previous usernames to members; link to actual change requests. 2017-01-11 13:07:39 -06:00
evazion 51df14f07a Fix voting not showing 'undo vote' link if you already voted. 2017-01-11 11:00:16 +00:00
evazion 34b6f22594 Clean up artcomms partial. 2017-01-11 04:48:44 -06:00
evazion 8a67cb847d Fix artist commentary dialog submitting wrong form. 2017-01-11 04:48:44 -06:00
evazion 2763f7e137 Fix ordering of favlists (sort by users who favorited first).
Fix bug introduced in 6e62a4c.
2017-01-08 00:57:36 +00:00
evazion b9fa5a0816 posts: don't revalidate md5 uniqueness on every update. 2017-01-05 14:31:02 -06:00
evazion 4e8006ae3b Optimize rendering of post commenter names.
Eager load post comments' creators and updaters. Fixes an N+1 queries
problem when rendering commenter names at:

    views/comments/partials/show/_comment.html.erb:6
    views/comments/partials/show/_comment.html.erb:20

while rendering /posts/:id pages.
2017-01-03 20:14:05 +00:00
evazion 6e62a4cc33 Optimize Post#favorited_users.
Load users in one query rather than one query per user.
2017-01-03 18:21:05 +00:00
evazion 469f48a118 Fix @mention autocomplete for comments & forum posts.
Fix comment autocomplete (broken in 1257639). Also fix forum post
autocomplete (didn't work when editing forum posts).
2017-01-02 12:53:30 -06:00
evazion ef3f390bba Fix #2813: /posts/random.json does not redirect nicely. 2017-01-01 04:04:46 -06:00
evazion c292587edb Add missing :platinum role to user/tag/dmail_filter attr_accessible lists. 2016-12-29 16:19:36 -06:00
evazion 6645847857 Simplify User#role. 2016-12-29 15:56:48 -06:00
evazion d2e9ff363b Fix bug preventing Platinum users from commenting.
Bug:

Platinum users get this error when commenting:

    No route matches {:action=>"show", :controller=>"posts", :id=>nil}
    missing required keys: [:id]

Fix:

The issue was that `CurrentUser.role` was nil for Platinum users, which
caused `Comment.create(create_params, :as => CurrentUser.role)` to
silently ignore the create_params because the nil role wasn't in the
attr_accessible whitelist.

Despite this, things worked accidentally for other models because they
had `attr_accessible ..., :as => [:default]` in their whitelists where
the comment model didn't.
2016-12-29 15:45:23 -06:00
evazion 8d714820a4 Fix undefined method is_deleted?' for nil` on /post_appeals.
Fix this exception:

    undefined method `is_deleted?' for nil:NilClass
    app/models/post_appeal.rb:72:in `resolved?'
    app/views/post_appeals/index.html.erb:23:in `block in _app_views_post_appeals_index_html_erb__2678117644687662585_70170674603580'
    app/views/post_appeals/index.html.erb:17:in `_app_views_post_appeals_index_html_erb__2678117644687662585_70170674603580'
    app/controllers/post_appeals_controller.rb:13:in `index'

that occurs on these pages:

    http://danbooru.donmai.us/post_appeals?limit=1&page=a2928
    http://danbooru.donmai.us/post_appeals?limit=1&page=a2929
    http://danbooru.donmai.us/post_appeals?limit=1&page=a2930
    http://danbooru.donmai.us/post_appeals?limit=1&page=a2931
    http://danbooru.donmai.us/post_appeals?limit=1&page=a2934
    http://danbooru.donmai.us/post_appeals?limit=1&page=a2936
    http://danbooru.donmai.us/post_appeals?limit=1&page=a2937
    http://danbooru.donmai.us/post_appeals?limit=1&page=a2945
    http://danbooru.donmai.us/post_appeals?limit=1&page=a2949
2016-12-27 21:33:44 -06:00
evazion 68744bc24a Add controls for copying commentary from source or another post. 2016-12-27 06:01:23 +00:00
evazion be379cc4a2 Return artist commentary in /sources.json?url=<url>. 2016-12-27 06:01:23 +00:00
evazion cc215f6a41 Add more artist commentary API endpoints.
* GET /posts/1/artist_commentary.json
* GET /artist_commentaries/1.json
2016-12-27 06:01:22 +00:00
evazion 254efd9ca2 Rearrange /artist_commentaries/search form. 2016-12-27 06:01:22 +00:00
evazion 7734e53169 Add "Help" link in /artist_commentaries subnav. 2016-12-27 06:01:22 +00:00
evazion 0af7e84c78 Fix subnav quick search bar on /artist_commentaries. 2016-12-27 06:01:21 +00:00
evazion 0e73f3c8a9 Add tests for stickying comments. 2016-12-26 23:52:46 -06:00
evazion 82e93b3c12 Allow downvoting admin comments. 2016-12-26 23:52:45 -06:00
evazion 91e368f08a Highlight stickied comments; don't dim downvoted stickies.
The highlight color uses the same color as the subnav bar background
color. Make it a tad brighter so it's more visible.
2016-12-26 23:52:45 -06:00
evazion 1257639109 Add 'post as moderator' option for comments.
* Add 'post as moderator' option to comment form. This creates a so-called sticky comment.
* Downvotes have no effect on stickied comments; they're always visible, regardless of comment thresholds.
* Only mods may sticky comments.
* Mods may sticky comments by other users.
2016-12-26 23:52:45 -06:00
evazion 390524c7f5 Remove obsolete IE8 opacity hacks; remove unused transparency mixin. 2016-12-26 23:52:27 -06:00
evazion 1b05d5068a Simplify Comment.for_creator_name. 2016-12-26 23:52:27 -06:00
evazion 9347f27059 /comments.json: add id param; allow id and post_id to take lists of ids. 2016-12-26 23:52:27 -06:00
evazion 69c50290a8 Include updater_name in /comments/1.json. 2016-12-26 23:52:27 -06:00
evazion c165b38a91 Prevent anon users from attempting to undelete/unvote comments.
The :undelete and :unvote actions weren't covered.
2016-12-26 23:52:27 -06:00
evazion 7c838f8525 Delete unused /comments/index_all route and unused _threshold.html.erb template. 2016-12-26 23:52:27 -06:00
evazion 85011c9192 Fix "'archive_development' database is not configured." exception. 2016-12-26 23:52:27 -06:00
evazion df22bae2be Fix "'archive_development' database is not configured." exception. 2016-12-26 15:09:43 -06:00
evazion f0591f3f5b Fix #2792: pull appeal text from wiki page. 2016-12-22 21:53:10 -06:00
evazion 00ddd2f5d4 Fix #2795: "check_availability" bug with saved searches. 2016-12-22 21:44:35 -06:00