diff --git a/.eslintrc b/.eslintrc index 275e8ed71..fd80c6478 100644 --- a/.eslintrc +++ b/.eslintrc @@ -11,16 +11,17 @@ "autosize": false, "Backbone": false, "Bloodhound": false, + "blueimp": false, "gon": false, "Handlebars": false, "HandlebarsTemplates": false, "ImagePaths": false, "jsxc": false, "L": false, - "Routes": false, "OSM": false, + "PerfectScrollbar": false, "qq": false, - "blueimp": false, + "Routes": false, "loginAs": true, "logout": true, diff --git a/Gemfile b/Gemfile index 7106a3b72..34f127181 100644 --- a/Gemfile +++ b/Gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -gem "rails", "5.1.4" +gem "rails", "5.1.6" # Legacy Rails features, remove me! # responders (class level) @@ -10,7 +10,7 @@ gem "responders", "2.4.0" # Appserver -gem "unicorn", "5.3.0", require: false +gem "unicorn", "5.4.0", require: false gem "unicorn-worker-killer", "0.4.4" # Federation @@ -26,7 +26,7 @@ gem "json-schema", "2.8.0" # Authentication -gem "devise", "4.4.1" +gem "devise", "4.4.3" gem "devise_lastseenable", "0.0.6" # Captcha @@ -35,7 +35,8 @@ gem "simple_captcha2", "0.4.3", require: "simple_captcha" # Background processing -gem "sidekiq", "5.0.4" +gem "redis", "3.3.5" # Pinned to 3.3.x because of https://github.com/antirez/redis/issues/4272 +gem "sidekiq", "5.1.3" # Scheduled processing @@ -43,7 +44,7 @@ gem "sidekiq-cron", "0.6.3" # Compression -gem "uglifier", "3.2.0" +gem "uglifier", "4.1.8" # Configuration @@ -51,33 +52,33 @@ gem "configurate", "0.3.1" # Cross-origin resource sharing -gem "rack-cors", "1.0.1", require: "rack/cors" +gem "rack-cors", "1.0.2", require: "rack/cors" # CSS -gem "autoprefixer-rails", "7.1.4.1" +gem "autoprefixer-rails", "8.2.0" gem "bootstrap-sass", "3.3.7" gem "bootstrap-switch-rails", "3.3.3" gem "compass-rails", "3.0.2" -gem "sass-rails", "5.0.6" +gem "sass-rails", "5.0.7" gem "sprockets-rails", "3.2.1" # Database group :mysql, optional: true do - gem "mysql2", "0.4.10" + gem "mysql2", "0.5.0" end group :postgresql, optional: true do - gem "pg", "0.21.0" + gem "pg", "1.0.0" end -gem "activerecord-import", "0.20.1" +gem "activerecord-import", "0.22.0" # File uploading -gem "carrierwave", "1.1.0" -gem "fog-aws", "1.4.1" +gem "carrierwave", "1.2.2" +gem "fog-aws", "2.0.1" gem "mini_magick", "4.8.0" # GUID generation @@ -92,7 +93,7 @@ gem "entypo-rails", "3.0.0" gem "sprockets-es6", "0.9.2" gem "handlebars_assets", "0.23.2" gem "jquery-rails", "4.3.1" -gem "js-routes", "1.4.1" +gem "js-routes", "1.4.3" gem "js_image_paths", "0.1.1" source "https://rails-assets.org" do @@ -100,7 +101,7 @@ source "https://rails-assets.org" do gem "rails-assets-jquery.ui", "1.11.4" gem "rails-assets-highlightjs", "9.12.0" - gem "rails-assets-markdown-it", "8.4.0" + gem "rails-assets-markdown-it", "8.4.1" gem "rails-assets-markdown-it-hashtag", "0.4.0" gem "rails-assets-markdown-it-diaspora-mention", "1.2.0" gem "rails-assets-markdown-it-sanitizer", "0.4.3" @@ -110,19 +111,19 @@ source "https://rails-assets.org" do gem "rails-assets-backbone", "1.3.3" gem "rails-assets-bootstrap-markdown", "2.10.0" - gem "rails-assets-corejs-typeahead", "1.1.1" + gem "rails-assets-corejs-typeahead", "1.2.1" gem "rails-assets-cropperjs", "1.2.1" gem "rails-assets-fine-uploader", "5.13.0" gem "rails-assets-pica", "4.0.1" # jQuery plugins - gem "rails-assets-autosize", "4.0.0" - gem "rails-assets-blueimp-gallery", "2.27.0" + gem "rails-assets-autosize", "4.0.1" + gem "rails-assets-blueimp-gallery", "2.33.0" gem "rails-assets-jquery.are-you-sure", "1.9.0" gem "rails-assets-jquery-placeholder", "2.3.1" gem "rails-assets-jquery-textchange", "0.2.3" - gem "rails-assets-perfect-scrollbar", "0.6.16" + gem "rails-assets-utatti-perfect-scrollbar", "1.3.0" end gem "markdown-it-html5-embed", "1.0.0" @@ -138,7 +139,7 @@ gem "rails-i18n", "5.1.1" gem "markerb", "1.1.0" # Map -gem "leaflet-rails", "1.2.0" +gem "leaflet-rails", "1.3.1" # Parsing @@ -146,27 +147,27 @@ gem "nokogiri", "1.8.2" gem "open_graph_reader", "0.6.2" # also update User-Agent in features/support/webmock.rb gem "redcarpet", "3.4.0" gem "ruby-oembed", "0.12.0" -gem "twitter-text", "1.14.7" +gem "twitter-text", "2.1.0" # RTL support -gem "string-direction", "1.2.0" +gem "string-direction", "1.2.1" # Security Headers -gem "secure_headers", "3.7.1" +gem "secure_headers", "5.0.5" # Services -gem "omniauth", "1.6.1" +gem "omniauth", "1.8.1" gem "omniauth-facebook", "4.0.0" gem "omniauth-tumblr", "1.2" gem "omniauth-twitter", "1.4.0" -gem "twitter", "6.1.0" gem "omniauth-wordpress", "0.2.2" +gem "twitter", "6.2.0" # OpenID Connect -gem "openid_connect", "1.1.3" +gem "openid_connect", "1.1.5" # Serializers @@ -183,15 +184,15 @@ gem "acts-as-taggable-on", "5.0.0" # URIs and HTTP gem "addressable", "2.5.2", require: "addressable/uri" -gem "faraday", "0.11.0" # also update User-Agent in OpenID specs +gem "faraday", "0.12.2" # also update User-Agent in OpenID specs gem "faraday_middleware", "0.12.2" gem "faraday-cookie_jar", "0.0.6" gem "typhoeus", "1.3.0" # Views -gem "gon", "6.1.0" -gem "hamlit", "2.8.6" +gem "gon", "6.2.0" +gem "hamlit", "2.8.8" gem "mobile-fu", "1.4.0" gem "rails-timeago", "2.16.0" gem "will_paginate", "3.1.6" @@ -211,7 +212,7 @@ gem "rubyzip", "1.2.1", require: "zip" # https://github.com/discourse/discourse/pull/238 gem "minitest" -gem "versionist", "1.6.0" +gem "versionist", "1.7.0" # Windows and OSX have an execjs compatible runtime built-in, Linux users should # install Node.js or use "therubyracer". @@ -228,7 +229,7 @@ group :production do # we don"t install these on travis to speed up test runs # Process management - gem "eye", "0.9.2" + gem "eye", "0.10.0" # Redirects @@ -237,26 +238,26 @@ group :production do # we don"t install these on travis to speed up test runs # Third party asset hosting - gem "asset_sync", "2.2.0", require: false + gem "asset_sync", "2.4.0", require: false end group :development do # Automatic test runs - gem "guard", "2.14.1", require: false + gem "guard", "2.14.2", require: false gem "guard-cucumber", "2.1.2", require: false gem "guard-rspec", "4.7.3", require: false gem "guard-rubocop", "1.3.0", require: false - gem "rb-fsevent", "0.10.2", require: false + gem "rb-fsevent", "0.10.3", require: false gem "rb-inotify", "0.9.10", require: false # Linters - gem "haml_lint", "0.26.0", require: false + gem "haml_lint", "0.27.0", require: false gem "pronto", "0.9.5", require: false gem "pronto-eslint", "0.9.1", require: false gem "pronto-haml", "0.9.0", require: false gem "pronto-rubocop", "0.9.0", require: false gem "pronto-scss", "0.9.1", require: false - gem "rubocop", "0.50.0", require: false + gem "rubocop", "0.54.0", require: false # Preloading environment @@ -277,25 +278,25 @@ end group :test do # RSpec (unit tests, some integration tests) - gem "fixture_builder", "0.5.0" - gem "fuubar", "2.2.0" + gem "fixture_builder", "0.5.1" + gem "fuubar", "2.3.1" gem "json-schema-rspec", "0.0.4" gem "rspec-json_expectations", "~> 2.1" # Cucumber (integration tests) - gem "capybara", "2.15.1" - gem "database_cleaner", "1.6.1" - gem "poltergeist", "1.16.0" + gem "capybara", "2.18.0" + gem "database_cleaner", "1.6.2" + gem "poltergeist", "1.17.0" - gem "cucumber-api-steps", "0.13", require: false + gem "cucumber-api-steps", "0.14", require: false # General helpers gem "factory_girl_rails", "4.8.0" gem "shoulda-matchers", "3.1.2" gem "timecop", "0.9.1" - gem "webmock", "3.0.1", require: false + gem "webmock", "3.3.0", require: false gem "diaspora_federation-test", "0.2.4" @@ -305,13 +306,13 @@ end group :development, :test do # RSpec (unit tests, some integration tests) - gem "rspec-rails", "3.6.1" + gem "rspec-rails", "3.7.2" # Cucumber (integration tests) gem "cucumber-rails", "1.5.0", require: false # Jasmine (client side application tests (JS)) - gem "jasmine", "2.8.0" + gem "jasmine", "3.1.0" gem "jasmine-jquery-rails", "2.0.3" gem "rails-assets-jasmine-ajax", "3.3.1", source: "https://rails-assets.org" gem "sinon-rails", "1.15.0" diff --git a/Gemfile.lock b/Gemfile.lock index 05bac8752..98211c806 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,25 +2,25 @@ GEM remote: https://rubygems.org/ remote: https://rails-assets.org/ specs: - actioncable (5.1.4) - actionpack (= 5.1.4) + actioncable (5.1.6) + actionpack (= 5.1.6) nio4r (~> 2.0) websocket-driver (~> 0.6.1) - actionmailer (5.1.4) - actionpack (= 5.1.4) - actionview (= 5.1.4) - activejob (= 5.1.4) + actionmailer (5.1.6) + actionpack (= 5.1.6) + actionview (= 5.1.6) + activejob (= 5.1.6) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.1.4) - actionview (= 5.1.4) - activesupport (= 5.1.4) + actionpack (5.1.6) + actionview (= 5.1.6) + activesupport (= 5.1.6) rack (~> 2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.1.4) - activesupport (= 5.1.4) + actionview (5.1.6) + activesupport (= 5.1.6) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -28,20 +28,20 @@ GEM active_model_serializers (0.9.7) activemodel (>= 3.2) concurrent-ruby (~> 1.0) - activejob (5.1.4) - activesupport (= 5.1.4) + activejob (5.1.6) + activesupport (= 5.1.6) globalid (>= 0.3.6) - activemodel (5.1.4) - activesupport (= 5.1.4) - activerecord (5.1.4) - activemodel (= 5.1.4) - activesupport (= 5.1.4) + activemodel (5.1.6) + activesupport (= 5.1.6) + activerecord (5.1.6) + activemodel (= 5.1.6) + activesupport (= 5.1.6) arel (~> 8.0) - activerecord-import (0.20.1) + activerecord-import (0.22.0) activerecord (>= 3.2) - activesupport (5.1.4) + activesupport (5.1.6) concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (~> 0.7) + i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) acts-as-taggable-on (5.0.0) @@ -52,37 +52,38 @@ GEM rack (>= 1.1.0) addressable (2.5.2) public_suffix (>= 2.0.2, < 4.0) + aes_key_wrap (1.0.1) arel (8.0.0) - asset_sync (2.2.0) + asset_sync (2.4.0) activemodel (>= 4.1.0) fog-core mime-types (>= 2.99) unf - ast (2.3.0) + ast (2.4.0) attr_required (1.0.1) - autoprefixer-rails (7.1.4.1) + autoprefixer-rails (8.2.0) execjs babel-source (5.8.35) babel-transpiler (0.7.0) babel-source (>= 4.0, < 6) execjs (~> 2.0) bcrypt (3.1.11) - bindata (2.4.1) + bindata (2.4.3) bootstrap-sass (3.3.7) autoprefixer-rails (>= 5.2.1) sass (>= 3.3.4) bootstrap-switch-rails (3.3.3) buftok (0.2.0) builder (3.2.3) - byebug (9.1.0) - capybara (2.15.1) + byebug (10.0.2) + capybara (2.18.0) addressable mini_mime (>= 0.1.3) nokogiri (>= 1.3.3) rack (>= 1.0.0) rack-test (>= 0.5.4) - xpath (~> 2.0) - carrierwave (1.1.0) + xpath (>= 2.0, < 4.0) + carrierwave (1.2.2) activemodel (>= 4.0.0) activesupport (>= 4.0.0) mime-types (>= 1.16) @@ -107,7 +108,7 @@ GEM timers (>= 4.1.1) celluloid-supervision (0.20.6) timers (>= 4.1.1) - chunky_png (1.3.8) + chunky_png (1.3.10) cliver (0.3.2) coderay (1.1.2) compass (1.0.3) @@ -138,7 +139,7 @@ GEM crack (0.4.3) safe_yaml (~> 1.0.0) crass (1.0.3) - cucumber (2.4.0) + cucumber (2.99.0) builder (>= 2.1.2) cucumber-core (~> 1.5.0) cucumber-wire (~> 0.0.1) @@ -146,10 +147,9 @@ GEM gherkin (~> 4.0) multi_json (>= 1.7.5, < 2.0) multi_test (>= 0.1.2) - cucumber-api-steps (0.13) - cucumber (>= 1.2.1) + cucumber-api-steps (0.14.0) + cucumber (>= 2.0.2) jsonpath (>= 0.1.2) - rspec (>= 2.12.0) cucumber-core (1.5.0) gherkin (~> 4.0) cucumber-rails (1.5.0) @@ -159,11 +159,11 @@ GEM nokogiri (~> 1.5) railties (>= 4, < 5.2) cucumber-wire (0.0.1) - database_cleaner (1.6.1) - devise (4.4.1) + database_cleaner (1.6.2) + devise (4.4.3) bcrypt (~> 3.0) orm_adapter (~> 0.1) - railties (>= 4.1.0, < 5.2) + railties (>= 4.1.0, < 6.0) responders warden (~> 1.2.3) devise_lastseenable (0.0.6) @@ -196,16 +196,16 @@ GEM execjs multi_json (>= 1.3) rake - et-orbi (1.0.5) + et-orbi (1.1.0) tzinfo ethon (0.11.0) ffi (>= 1.3.0) - excon (0.59.0) + excon (0.62.0) execjs (2.7.0) - eye (0.9.2) + eye (0.10.0) celluloid (~> 0.17.3) celluloid-io (~> 0.17.0) - sigar (~> 0.7.3) + kostya-sigar (~> 2.0.0) state_machines thor fabrication (2.20.1) @@ -214,7 +214,7 @@ GEM factory_girl_rails (4.8.0) factory_girl (~> 4.8.0) railties (>= 3.0.0) - faraday (0.11.0) + faraday (0.12.2) multipart-post (>= 1.2, < 3) faraday-cookie_jar (0.0.6) faraday (>= 0.7.4) @@ -222,10 +222,10 @@ GEM faraday_middleware (0.12.2) faraday (>= 0.7.4, < 1.0) ffi (1.9.23) - fixture_builder (0.5.0) + fixture_builder (0.5.1) activerecord (>= 2) activesupport (>= 2) - fog-aws (1.4.1) + fog-aws (2.0.1) fog-core (~> 1.38) fog-json (~> 1.0) fog-xml (~> 0.1) @@ -241,25 +241,24 @@ GEM fog-core nokogiri (>= 1.5.11, < 2.0.0) formatador (0.2.5) - fuubar (2.2.0) + fuubar (2.3.1) rspec-core (~> 3.0) ruby-progressbar (~> 1.4) get_process_mem (0.2.1) gherkin (4.1.3) - gitlab (4.2.0) + gitlab (4.3.0) httparty terminal-table - globalid (0.4.0) + globalid (0.4.1) activesupport (>= 4.2.0) - gon (6.1.0) + gon (6.2.0) actionpack (>= 3.0) - json multi_json request_store (>= 1.0) - guard (2.14.1) + guard (2.14.2) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) - lumberjack (~> 1.0) + lumberjack (>= 1.0.12, < 2.0) nenv (~> 0.1) notiffany (~> 0.0) pry (>= 0.9.12) @@ -280,13 +279,13 @@ GEM haml (5.0.4) temple (>= 0.8.0) tilt - haml_lint (0.26.0) + haml_lint (0.27.0) haml (>= 4.0, < 5.1) rainbow rake (>= 10, < 13) - rubocop (>= 0.49.0) + rubocop (>= 0.50.0) sysexits (~> 1.1) - hamlit (2.8.6) + hamlit (2.8.8) temple (>= 0.8.0) thor tilt @@ -294,23 +293,23 @@ GEM execjs (~> 2.0) sprockets (>= 2.0.0) tilt (>= 1.2) - hashdiff (0.3.6) - hashie (3.5.6) + hashdiff (0.3.7) + hashie (3.5.7) hitimes (1.2.6) - http (2.2.2) + http (3.0.0) addressable (~> 2.3) http-cookie (~> 1.0) - http-form_data (~> 1.0.1) + http-form_data (>= 2.0.0.pre.pre2, < 3) http_parser.rb (~> 0.6.0) http-cookie (1.0.3) domain_name (~> 0.5) - http-form_data (1.0.3) + http-form_data (2.1.0) http_accept_language (2.1.1) http_parser.rb (0.6.0) - httparty (0.15.6) + httparty (0.16.2) multi_xml (>= 0.5.2) httpclient (2.8.3) - i18n (0.9.5) + i18n (1.0.0) concurrent-ruby (~> 1.0) i18n-inflector (2.6.7) i18n (>= 0.4.1) @@ -318,29 +317,30 @@ GEM actionpack (>= 3.0.0) i18n-inflector (~> 2.6) railties (>= 3.0.0) + idn-ruby (0.1.0) ipaddress (0.8.3) - jasmine (2.8.0) - jasmine-core (>= 2.8.0, < 3.0.0) + jasmine (3.1.0) + jasmine-core (= 3.1.0) phantomjs rack (>= 1.2.1) rake - jasmine-core (2.8.0) + jasmine-core (3.1.0) jasmine-jquery-rails (2.0.3) jquery-rails (4.3.1) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) - js-routes (1.4.1) + js-routes (1.4.3) railties (>= 3.2) sprockets-rails js_image_paths (0.1.1) rails (>= 4.0, < 6.0) sprockets (>= 3.0.0) json (2.1.0) - json-jwt (1.7.2) + json-jwt (1.9.2) activesupport + aes_key_wrap bindata - multi_json (>= 1.3) securecompare url_safe_base64 json-schema (2.8.0) @@ -348,11 +348,13 @@ GEM json-schema-rspec (0.0.4) json-schema (~> 2.5) rspec - jsonpath (0.8.7) + jsonpath (0.8.11) multi_json + to_regexp (~> 0.2.1) jwt (1.5.6) - kgio (2.11.0) - leaflet-rails (1.2.0) + kgio (2.11.2) + kostya-sigar (2.0.0) + leaflet-rails (1.3.1) rails (>= 4.2.0) listen (3.1.5) rb-fsevent (~> 0.9, >= 0.9.4) @@ -364,52 +366,52 @@ GEM multi_json (~> 1.10) logging-rails (0.6.0) logging (>= 1.8) - loofah (2.2.0) + loofah (2.2.2) crass (~> 1.0.2) nokogiri (>= 1.5.9) - lumberjack (1.0.12) + lumberjack (1.0.13) macaddr (1.7.1) systemu (~> 2.6.2) - mail (2.6.6) - mime-types (>= 1.16, < 4) + mail (2.7.0) + mini_mime (>= 0.1.1) markdown-it-html5-embed (1.0.0) markerb (1.1.0) memoizable (0.4.2) thread_safe (~> 0.3, >= 0.3.1) - method_source (0.8.2) + method_source (0.9.0) mime-types (3.1) mime-types-data (~> 3.2015) mime-types-data (3.2016.0521) mini_magick (4.8.0) - mini_mime (0.1.4) + mini_mime (1.0.0) mini_portile2 (2.3.0) minitest (5.11.3) mobile-fu (1.4.0) rack-mobile-detect rails - multi_json (1.12.2) + multi_json (1.13.1) multi_test (0.1.2) multi_xml (0.6.0) multipart-post (2.0.0) - mysql2 (0.4.10) + mysql2 (0.5.0) naught (1.1.0) nenv (0.3.0) - nio4r (2.1.0) + nio4r (2.3.0) nokogiri (1.8.2) mini_portile2 (~> 2.3.0) notiffany (0.1.1) nenv (~> 0.1) shellany (~> 0.0) - oauth (0.5.3) + oauth (0.5.4) oauth2 (1.4.0) faraday (>= 0.8, < 0.13) jwt (~> 1.0) multi_json (~> 1.3) multi_xml (~> 0.5) rack (>= 1.2, < 3) - octokit (4.7.0) + octokit (4.8.0) sawyer (~> 0.8.0, >= 0.5.3) - omniauth (1.6.1) + omniauth (1.8.1) hashie (>= 3.4.6, < 3.6.0) rack (>= 1.6.2, < 3) omniauth-facebook (4.0.0) @@ -417,8 +419,8 @@ GEM omniauth-oauth (1.1.0) oauth omniauth (~> 1.0) - omniauth-oauth2 (1.4.0) - oauth2 (~> 1.0) + omniauth-oauth2 (1.5.0) + oauth2 (~> 1.1) omniauth (~> 1.2) omniauth-tumblr (1.2) multi_json @@ -431,10 +433,9 @@ GEM open_graph_reader (0.6.2) faraday (>= 0.9.0) nokogiri (~> 1.6) - openid_connect (1.1.3) + openid_connect (1.1.5) activemodel attr_required (>= 1.0.0) - json (>= 1.4.3) json-jwt (>= 1.5.0) rack-oauth2 (>= 1.6.1) swd (>= 1.0.0) @@ -443,12 +444,12 @@ GEM validate_url webfinger (>= 1.0.1) orm_adapter (0.5.0) - parallel (1.12.0) - parser (2.4.0.0) - ast (~> 2.2) - pg (0.21.0) + parallel (1.12.1) + parser (2.5.0.5) + ast (~> 2.4.0) + pg (1.0.0) phantomjs (2.1.1.0) - poltergeist (1.16.0) + poltergeist (1.17.0) capybara (~> 2.1) cliver (~> 0.3.1) websocket-driver (>= 0.2.0) @@ -472,55 +473,55 @@ GEM pronto-scss (0.9.1) pronto (~> 0.9.0) scss_lint (~> 0.43, >= 0.43.0) - pry (0.11.0) + pry (0.11.3) coderay (~> 1.1.0) - method_source (~> 0.8.1) - pry-byebug (3.5.0) - byebug (~> 9.1) + method_source (~> 0.9.0) + pry-byebug (3.6.0) + byebug (~> 10.0) pry (~> 0.10) - public_suffix (3.0.0) + public_suffix (3.0.2) rack (2.0.4) - rack-cors (1.0.1) + rack-cors (1.0.2) rack-google-analytics (1.2.0) actionpack activesupport rack-mobile-detect (0.4.0) rack - rack-oauth2 (1.6.2) - activesupport (>= 2.3) - attr_required (>= 0.0.5) - httpclient (>= 2.4) - multi_json (>= 1.3.6) - rack (>= 1.1) + rack-oauth2 (1.9.1) + activesupport + attr_required + httpclient + json-jwt (>= 1.9.0) + rack rack-piwik (0.3.0) rack-protection (2.0.1) rack rack-rewrite (1.5.1) rack-ssl (1.4.1) rack - rack-test (0.8.3) + rack-test (1.0.0) rack (>= 1.0, < 3) - rails (5.1.4) - actioncable (= 5.1.4) - actionmailer (= 5.1.4) - actionpack (= 5.1.4) - actionview (= 5.1.4) - activejob (= 5.1.4) - activemodel (= 5.1.4) - activerecord (= 5.1.4) - activesupport (= 5.1.4) + rails (5.1.6) + actioncable (= 5.1.6) + actionmailer (= 5.1.6) + actionpack (= 5.1.6) + actionview (= 5.1.6) + activejob (= 5.1.6) + activemodel (= 5.1.6) + activerecord (= 5.1.6) + activesupport (= 5.1.6) bundler (>= 1.3.0) - railties (= 5.1.4) + railties (= 5.1.6) sprockets-rails (>= 2.0.0) - rails-assets-autosize (4.0.0) + rails-assets-autosize (4.0.1) rails-assets-backbone (1.3.3) rails-assets-underscore (>= 1.8.3) - rails-assets-blueimp-gallery (2.27.0) + rails-assets-blueimp-gallery (2.33.0) rails-assets-bootstrap (3.3.7) rails-assets-jquery (>= 1.9.1, < 4) rails-assets-bootstrap-markdown (2.10.0) rails-assets-bootstrap (~> 3) - rails-assets-corejs-typeahead (1.1.1) + rails-assets-corejs-typeahead (1.2.1) rails-assets-jquery (>= 1.11) rails-assets-cropperjs (1.2.1) rails-assets-diaspora_jsxc (0.1.5.develop.7) @@ -534,7 +535,7 @@ GEM rails-assets-favico.js (0.3.10) rails-assets-fine-uploader (5.13.0) rails-assets-highlightjs (9.12.0) - rails-assets-jasmine (2.8.0) + rails-assets-jasmine (2.99.2) rails-assets-jasmine-ajax (3.3.1) rails-assets-jasmine (~> 2) rails-assets-jquery (3.2.1) @@ -551,15 +552,15 @@ GEM rails-assets-jquery.ui (1.11.4) rails-assets-jquery (>= 1.6) rails-assets-markdown-it--markdown-it-for-inline (0.1.1) - rails-assets-markdown-it (8.4.0) + rails-assets-markdown-it (8.4.1) rails-assets-markdown-it-diaspora-mention (1.2.0) rails-assets-markdown-it-hashtag (0.4.0) rails-assets-markdown-it-sanitizer (0.4.3) rails-assets-markdown-it-sub (1.0.0) rails-assets-markdown-it-sup (1.0.0) - rails-assets-perfect-scrollbar (0.6.16) rails-assets-pica (4.0.1) rails-assets-underscore (1.8.3) + rails-assets-utatti-perfect-scrollbar (1.3.0) rails-controller-testing (1.0.2) actionpack (~> 5.x, >= 5.0.1) actionview (~> 5.x, >= 5.0.1) @@ -567,72 +568,73 @@ GEM rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.0.3) - loofah (~> 2.0) + rails-html-sanitizer (1.0.4) + loofah (~> 2.2, >= 2.2.2) rails-i18n (5.1.1) i18n (>= 0.7, < 2) railties (>= 5.0, < 6) rails-timeago (2.16.0) actionpack (>= 3.1) activesupport (>= 3.1) - railties (5.1.4) - actionpack (= 5.1.4) - activesupport (= 5.1.4) + railties (5.1.6) + actionpack (= 5.1.6) + activesupport (= 5.1.6) method_source rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rainbow (2.2.2) rake raindrops (0.19.0) - rake (12.3.0) - rb-fsevent (0.10.2) + rake (12.3.1) + rb-fsevent (0.10.3) rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) redcarpet (3.4.0) - redis (3.3.3) - request_store (1.3.2) + redis (3.3.5) + request_store (1.4.1) + rack (>= 1.4) responders (2.4.0) actionpack (>= 4.2.0, < 5.3) railties (>= 4.2.0, < 5.3) - rspec (3.6.0) - rspec-core (~> 3.6.0) - rspec-expectations (~> 3.6.0) - rspec-mocks (~> 3.6.0) - rspec-core (3.6.0) - rspec-support (~> 3.6.0) - rspec-expectations (3.6.0) + rspec (3.7.0) + rspec-core (~> 3.7.0) + rspec-expectations (~> 3.7.0) + rspec-mocks (~> 3.7.0) + rspec-core (3.7.1) + rspec-support (~> 3.7.0) + rspec-expectations (3.7.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.6.0) + rspec-support (~> 3.7.0) rspec-json_expectations (2.1.0) - rspec-mocks (3.6.0) + rspec-mocks (3.7.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.6.0) - rspec-rails (3.6.1) + rspec-support (~> 3.7.0) + rspec-rails (3.7.2) actionpack (>= 3.0) activesupport (>= 3.0) railties (>= 3.0) - rspec-core (~> 3.6.0) - rspec-expectations (~> 3.6.0) - rspec-mocks (~> 3.6.0) - rspec-support (~> 3.6.0) - rspec-support (3.6.0) - rubocop (0.50.0) + rspec-core (~> 3.7.0) + rspec-expectations (~> 3.7.0) + rspec-mocks (~> 3.7.0) + rspec-support (~> 3.7.0) + rspec-support (3.7.1) + rubocop (0.54.0) parallel (~> 1.10) - parser (>= 2.3.3.1, < 3.0) + parser (>= 2.5) powerpack (~> 0.1) - rainbow (>= 2.2.2, < 3.0) + rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) unicode-display_width (~> 1.0, >= 1.0.1) ruby-oembed (0.12.0) - ruby-progressbar (1.8.3) + ruby-progressbar (1.9.0) ruby_dep (1.5.0) rubyzip (1.2.1) rufus-scheduler (3.4.2) et-orbi (~> 1.0) - rugged (0.26.0) + rugged (0.27.0) safe_yaml (1.0.4) sass (3.4.25) - sass-rails (5.0.6) + sass-rails (5.0.7) railties (>= 4.0.0, < 6) sass (~> 3.1) sprockets (>= 2.8, < 4.0) @@ -641,24 +643,23 @@ GEM sawyer (0.8.1) addressable (>= 2.3.5, < 2.6) faraday (~> 0.8, < 1.0) - scss_lint (0.54.0) + scss_lint (0.55.0) rake (>= 0.9, < 13) sass (~> 3.4.20) - secure_headers (3.7.1) - useragent + secure_headers (5.0.5) + useragent (>= 0.15.0) securecompare (1.0.0) shellany (0.0.1) shoulda-matchers (3.1.2) activesupport (>= 4.0.0) - sidekiq (5.0.4) + sidekiq (5.1.3) concurrent-ruby (~> 1.0) connection_pool (~> 2.2, >= 2.2.0) rack-protection (>= 1.5.0) - redis (~> 3.3, >= 3.3.3) + redis (>= 3.3.5, < 5) sidekiq-cron (0.6.3) rufus-scheduler (>= 3.3.0) sidekiq (>= 4.2.1) - sigar (0.7.3) simple_captcha2 (0.4.3) rails (>= 4.1) simple_oauth (0.3.1) @@ -687,14 +688,11 @@ GEM activesupport (>= 4.0) sprockets (>= 3.0.0) state_machines (0.5.0) - string-direction (1.2.0) - yard (~> 0.8) - swd (1.0.1) + string-direction (1.2.1) + swd (1.1.2) activesupport (>= 3) attr_required (>= 0.0.5) httpclient (>= 2.4) - i18n - json (>= 1.4.3) sysexits (1.2.0) systemu (2.6.5) temple (0.8.0) @@ -708,38 +706,41 @@ GEM timecop (0.9.1) timers (4.1.2) hitimes - tins (1.15.0) + tins (1.16.3) + to_regexp (0.2.1) turbo_dev_assets (0.0.2) - twitter (6.1.0) - addressable (~> 2.5) + twitter (6.2.0) + addressable (~> 2.3) buftok (~> 0.2.0) - equalizer (= 0.0.11) - faraday (~> 0.11.0) - http (~> 2.1) + equalizer (~> 0.0.11) + http (~> 3.0) + http-form_data (~> 2.0) http_parser.rb (~> 0.6.0) - memoizable (~> 0.4.2) - naught (~> 1.1) - simple_oauth (~> 0.3.1) - twitter-text (1.14.7) + memoizable (~> 0.4.0) + multipart-post (~> 2.0) + naught (~> 1.0) + simple_oauth (~> 0.3.0) + twitter-text (2.1.0) + idn-ruby unf (~> 0.1.0) typhoeus (1.3.0) ethon (>= 0.9.0) tzinfo (1.2.5) thread_safe (~> 0.1) - uglifier (3.2.0) + uglifier (4.1.8) execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext - unf_ext (0.0.7.4) + unf_ext (0.0.7.5) unicode-display_width (1.3.0) - unicorn (5.3.0) + unicorn (5.4.0) kgio (~> 2.6) raindrops (~> 0.7) unicorn-worker-killer (0.4.4) get_process_mem (~> 0) unicorn (>= 4, < 6) url_safe_base64 (0.2.2) - useragent (0.16.8) + useragent (0.16.10) uuid (2.3.8) macaddr (~> 1.0) valid (1.2.0) @@ -749,26 +750,25 @@ GEM validate_url (1.0.2) activemodel (>= 3.0.0) addressable - versionist (1.6.0) + versionist (1.7.0) activesupport (>= 3) railties (>= 3) - yard (~> 0.7) + yard (~> 0.9.11) warden (1.2.7) rack (>= 1.0) - webfinger (1.0.2) + webfinger (1.1.0) activesupport httpclient (>= 2.4) - multi_json - webmock (3.0.1) + webmock (3.3.0) addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff websocket-driver (0.6.5) websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.2) + websocket-extensions (0.1.3) will_paginate (3.1.6) - xpath (2.1.0) - nokogiri (~> 1.3) + xpath (3.0.0) + nokogiri (~> 1.8) yard (0.9.12) PLATFORMS @@ -776,73 +776,73 @@ PLATFORMS DEPENDENCIES active_model_serializers (= 0.9.7) - activerecord-import (= 0.20.1) + activerecord-import (= 0.22.0) acts-as-taggable-on (= 5.0.0) acts_as_api (= 1.0.1) addressable (= 2.5.2) - asset_sync (= 2.2.0) - autoprefixer-rails (= 7.1.4.1) + asset_sync (= 2.4.0) + autoprefixer-rails (= 8.2.0) bootstrap-sass (= 3.3.7) bootstrap-switch-rails (= 3.3.3) - capybara (= 2.15.1) - carrierwave (= 1.1.0) + capybara (= 2.18.0) + carrierwave (= 1.2.2) compass-rails (= 3.0.2) configurate (= 0.3.1) coveralls (= 0.8.21) - cucumber-api-steps (= 0.13) + cucumber-api-steps (= 0.14) cucumber-rails (= 1.5.0) - database_cleaner (= 1.6.1) - devise (= 4.4.1) + database_cleaner (= 1.6.2) + devise (= 4.4.3) devise_lastseenable (= 0.0.6) diaspora-prosody-config (= 0.0.7) diaspora_federation-json_schema (= 0.2.4) diaspora_federation-rails (= 0.2.4) diaspora_federation-test (= 0.2.4) entypo-rails (= 3.0.0) - eye (= 0.9.2) + eye (= 0.10.0) factory_girl_rails (= 4.8.0) - faraday (= 0.11.0) + faraday (= 0.12.2) faraday-cookie_jar (= 0.0.6) faraday_middleware (= 0.12.2) - fixture_builder (= 0.5.0) - fog-aws (= 1.4.1) - fuubar (= 2.2.0) - gon (= 6.1.0) - guard (= 2.14.1) + fixture_builder (= 0.5.1) + fog-aws (= 2.0.1) + fuubar (= 2.3.1) + gon (= 6.2.0) + guard (= 2.14.2) guard-cucumber (= 2.1.2) guard-rspec (= 4.7.3) guard-rubocop (= 1.3.0) - haml_lint (= 0.26.0) - hamlit (= 2.8.6) + haml_lint (= 0.27.0) + hamlit (= 2.8.8) handlebars_assets (= 0.23.2) http_accept_language (= 2.1.1) i18n-inflector-rails (= 1.0.7) - jasmine (= 2.8.0) + jasmine (= 3.1.0) jasmine-jquery-rails (= 2.0.3) jquery-rails (= 4.3.1) - js-routes (= 1.4.1) + js-routes (= 1.4.3) js_image_paths (= 0.1.1) json (= 2.1.0) json-schema (= 2.8.0) json-schema-rspec (= 0.0.4) - leaflet-rails (= 1.2.0) + leaflet-rails (= 1.3.1) logging-rails (= 0.6.0) markdown-it-html5-embed (= 1.0.0) markerb (= 1.1.0) mini_magick (= 4.8.0) minitest mobile-fu (= 1.4.0) - mysql2 (= 0.4.10) + mysql2 (= 0.5.0) nokogiri (= 1.8.2) - omniauth (= 1.6.1) + omniauth (= 1.8.1) omniauth-facebook (= 4.0.0) omniauth-tumblr (= 1.2) omniauth-twitter (= 1.4.0) omniauth-wordpress (= 0.2.2) open_graph_reader (= 0.6.2) - openid_connect (= 1.1.3) - pg (= 0.21.0) - poltergeist (= 1.16.0) + openid_connect (= 1.1.5) + pg (= 1.0.0) + poltergeist (= 1.17.0) pronto (= 0.9.5) pronto-eslint (= 0.9.1) pronto-haml (= 0.9.0) @@ -850,17 +850,17 @@ DEPENDENCIES pronto-scss (= 0.9.1) pry pry-byebug - rack-cors (= 1.0.1) + rack-cors (= 1.0.2) rack-google-analytics (= 1.2.0) rack-piwik (= 0.3.0) rack-rewrite (= 1.5.1) rack-ssl (= 1.4.1) - rails (= 5.1.4) - rails-assets-autosize (= 4.0.0)! + rails (= 5.1.6) + rails-assets-autosize (= 4.0.1)! rails-assets-backbone (= 1.3.3)! - rails-assets-blueimp-gallery (= 2.27.0)! + rails-assets-blueimp-gallery (= 2.33.0)! rails-assets-bootstrap-markdown (= 2.10.0)! - rails-assets-corejs-typeahead (= 1.1.1)! + rails-assets-corejs-typeahead (= 1.2.1)! rails-assets-cropperjs (= 1.2.1)! rails-assets-diaspora_jsxc (= 0.1.5.develop.7)! rails-assets-fine-uploader (= 5.13.0)! @@ -871,31 +871,32 @@ DEPENDENCIES rails-assets-jquery-textchange (= 0.2.3)! rails-assets-jquery.are-you-sure (= 1.9.0)! rails-assets-jquery.ui (= 1.11.4)! - rails-assets-markdown-it (= 8.4.0)! + rails-assets-markdown-it (= 8.4.1)! rails-assets-markdown-it--markdown-it-for-inline (= 0.1.1)! rails-assets-markdown-it-diaspora-mention (= 1.2.0)! rails-assets-markdown-it-hashtag (= 0.4.0)! rails-assets-markdown-it-sanitizer (= 0.4.3)! rails-assets-markdown-it-sub (= 1.0.0)! rails-assets-markdown-it-sup (= 1.0.0)! - rails-assets-perfect-scrollbar (= 0.6.16)! rails-assets-pica (= 4.0.1)! + rails-assets-utatti-perfect-scrollbar (= 1.3.0)! rails-controller-testing (= 1.0.2) rails-i18n (= 5.1.1) rails-timeago (= 2.16.0) - rb-fsevent (= 0.10.2) + rb-fsevent (= 0.10.3) rb-inotify (= 0.9.10) redcarpet (= 3.4.0) + redis (= 3.3.5) responders (= 2.4.0) rspec-json_expectations (~> 2.1) - rspec-rails (= 3.6.1) - rubocop (= 0.50.0) + rspec-rails (= 3.7.2) + rubocop (= 0.54.0) ruby-oembed (= 0.12.0) rubyzip (= 1.2.1) - sass-rails (= 5.0.6) - secure_headers (= 3.7.1) + sass-rails (= 5.0.7) + secure_headers (= 5.0.5) shoulda-matchers (= 3.1.2) - sidekiq (= 5.0.4) + sidekiq (= 5.1.3) sidekiq-cron (= 0.6.3) simple_captcha2 (= 0.4.3) simplecov (= 0.14.1) @@ -905,18 +906,18 @@ DEPENDENCIES spring-commands-rspec (= 1.0.4) sprockets-es6 (= 0.9.2) sprockets-rails (= 3.2.1) - string-direction (= 1.2.0) + string-direction (= 1.2.1) timecop (= 0.9.1) turbo_dev_assets (= 0.0.2) - twitter (= 6.1.0) - twitter-text (= 1.14.7) + twitter (= 6.2.0) + twitter-text (= 2.1.0) typhoeus (= 1.3.0) - uglifier (= 3.2.0) - unicorn (= 5.3.0) + uglifier (= 4.1.8) + unicorn (= 5.4.0) unicorn-worker-killer (= 0.4.4) uuid (= 2.3.8) - versionist (= 1.6.0) - webmock (= 3.0.1) + versionist (= 1.7.0) + webmock (= 3.3.0) will_paginate (= 3.1.6) BUNDLED WITH diff --git a/app/assets/javascripts/app/app.js b/app/assets/javascripts/app/app.js index 1360e952e..c0ee09de5 100644 --- a/app/assets/javascripts/app/app.js +++ b/app/assets/javascripts/app/app.js @@ -14,7 +14,7 @@ //= require_tree ./collections //= require_tree ./views -//= require perfect-scrollbar/perfect-scrollbar.jquery +//= require utatti-perfect-scrollbar/dist/perfect-scrollbar var app = { collections: {}, diff --git a/app/assets/javascripts/app/views/notification_dropdown_view.js b/app/assets/javascripts/app/views/notification_dropdown_view.js index 1d14cac08..0ae192564 100644 --- a/app/assets/javascripts/app/views/notification_dropdown_view.js +++ b/app/assets/javascripts/app/views/notification_dropdown_view.js @@ -12,7 +12,7 @@ app.views.NotificationDropdown = app.views.Base.extend({ this.dropdown = $("#notification-dropdown"); this.dropdownNotifications = this.dropdown.find(".notifications"); this.ajaxLoader = this.dropdown.find(".ajax-loader"); - this.perfectScrollbarInitialized = false; + this.perfectScrollbar = null; this.dropdownNotifications.scroll(this.dropdownScroll.bind(this)); this.bindCollectionEvents(); }, @@ -106,18 +106,17 @@ app.views.NotificationDropdown = app.views.Base.extend({ }, updateScrollbar: function() { - if(this.perfectScrollbarInitialized) { - this.dropdownNotifications.perfectScrollbar("update"); + if (this.perfectScrollbar) { + this.perfectScrollbar.update(); } else { - this.dropdownNotifications.perfectScrollbar(); - this.perfectScrollbarInitialized = true; + this.perfectScrollbar = new PerfectScrollbar(this.dropdownNotifications[0]); } }, destroyScrollbar: function() { - if(this.perfectScrollbarInitialized) { - this.dropdownNotifications.perfectScrollbar("destroy"); - this.perfectScrollbarInitialized = false; + if (this.perfectScrollbar) { + this.perfectScrollbar.destroy(); + this.perfectScrollbar = null; } } }); diff --git a/app/assets/stylesheets/_application.scss b/app/assets/stylesheets/_application.scss index 88cb2f10f..f63d1cd32 100644 --- a/app/assets/stylesheets/_application.scss +++ b/app/assets/stylesheets/_application.scss @@ -1,4 +1,4 @@ -@import 'perfect-scrollbar'; +@import 'utatti-perfect-scrollbar/css/perfect-scrollbar'; @import 'color-variables'; @import 'bootstrap-complete'; diff --git a/config/environments/test.rb b/config/environments/test.rb index 988cf7044..26db9c226 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -32,6 +32,8 @@ Rails.application.configure do color_themes/original/desktop.css color_themes/dark_green/desktop.css color_themes/original/mobile.css + jasmine-load-all.js + jasmine-jquery.js ] # Show full error reports and disable caching. @@ -58,4 +60,7 @@ Rails.application.configure do # Raises error for missing translations # config.action_view.raise_on_missing_translations = true + + # for fixture_builder + ENV["FIXTURES_PATH"] = "spec/fixtures" end diff --git a/config/initializers/secure_headers.rb b/config/initializers/secure_headers.rb index 1ed7a0641..bc0abb6e4 100644 --- a/config/initializers/secure_headers.rb +++ b/config/initializers/secure_headers.rb @@ -6,13 +6,13 @@ SecureHeaders::Configuration.default do |config| # rubocop:disable Lint/PercentStringArray csp = { default_src: %w['none'], - child_src: %w['self' blob: www.youtube.com w.soundcloud.com twitter.com platform.twitter.com - syndication.twitter.com player.vimeo.com www.mixcloud.com www.dailymotion.com media.ccc.de - bandcamp.com www.instagram.com], connect_src: %w['self' embedr.flickr.com geo.query.yahoo.com nominatim.openstreetmap.org api.github.com], font_src: %w['self'], form_action: %w['self' platform.twitter.com syndication.twitter.com], frame_ancestors: %w['self'], + frame_src: %w['self' blob: www.youtube.com w.soundcloud.com twitter.com platform.twitter.com + syndication.twitter.com player.vimeo.com www.mixcloud.com www.dailymotion.com media.ccc.de + bandcamp.com www.instagram.com], img_src: %w['self' data: blob: *], media_src: %w[https:], script_src: %w['self' blob: 'unsafe-eval' platform.twitter.com cdn.syndication.twimg.com widgets.flickr.com diff --git a/features/step_definitions/notifications_steps.rb b/features/step_definitions/notifications_steps.rb index 11cb5efa7..9088dacc2 100644 --- a/features/step_definitions/notifications_steps.rb +++ b/features/step_definitions/notifications_steps.rb @@ -32,7 +32,7 @@ Then "the notification dropdown should be visible" do end Then "the notification dropdown scrollbar should be visible" do - expect(find(:css, ".ps-active-y")).to be_visible + expect(find(:css, ".ps--active-y")).to be_visible end Then /^there should be (\d+) notifications loaded$/ do |n| diff --git a/features/support/env.rb b/features/support/env.rb index 7ee2f0e9d..631a207ac 100644 --- a/features/support/env.rb +++ b/features/support/env.rb @@ -53,9 +53,6 @@ Capybara.default_max_wait_time = 30 # of your scenarios, as this makes it hard to discover errors in your application. ActionController::Base.allow_rescue = false -# TODO: Temporary fix for rails 5, remove the next line after a new version of database_cleaner is released. -# See https://github.com/DatabaseCleaner/database_cleaner/issues/445 -Cucumber::Rails::Database.javascript_strategy = :truncation, {except: %w[ar_internal_metadata]} Cucumber::Rails::Database.autorun_database_cleaner = true Cucumber::Rails::World.use_transactional_tests = false diff --git a/lib/diaspora/markdownify/html.rb b/lib/diaspora/markdownify/html.rb index 19d4dd649..610c45223 100644 --- a/lib/diaspora/markdownify/html.rb +++ b/lib/diaspora/markdownify/html.rb @@ -6,7 +6,7 @@ module Diaspora include ActionView::Helpers::TextHelper def autolink link, type - Twitter::Autolink.auto_link_urls( + Twitter::TwitterText::Autolink.auto_link_urls( link, url_target: "_blank", link_attribute_block: lambda {|_, attr| attr[:rel] += " noopener noreferrer" } diff --git a/lib/diaspora/message_renderer.rb b/lib/diaspora/message_renderer.rb index 4477ae587..883bcbaf6 100644 --- a/lib/diaspora/message_renderer.rb +++ b/lib/diaspora/message_renderer.rb @@ -244,7 +244,7 @@ module Diaspora # Extracts all the urls from the raw message and return them in the form of a string # Different URLs are seperated with a space def urls - @urls ||= Twitter::Extractor.extract_urls(plain_text_without_markdown).map {|url| + @urls ||= Twitter::TwitterText::Extractor.extract_urls(plain_text_without_markdown).map {|url| Addressable::URI.parse(url).normalize.to_s } end diff --git a/script/configure_bundler b/script/configure_bundler index 1f30cca70..67e6aa055 100755 --- a/script/configure_bundler +++ b/script/configure_bundler @@ -28,8 +28,4 @@ if rails_env != "development" config("disable_shared_gems true") end -if `gcc -dumpversion`.split(".").first.to_i >= 5 - config("build.sigar \"--with-cppflags='-fgnu89-inline'\"") -end - puts "Bundler configured! Please run 'bin/bundle install' now." diff --git a/spec/controllers/api/openid_connect/clients_controller_spec.rb b/spec/controllers/api/openid_connect/clients_controller_spec.rb index 1a2c0eb4d..b1f59640d 100644 --- a/spec/controllers/api/openid_connect/clients_controller_spec.rb +++ b/spec/controllers/api/openid_connect/clients_controller_spec.rb @@ -8,7 +8,7 @@ describe Api::OpenidConnect::ClientsController, type: :controller, suppress_csrf .with(headers: { "Accept" => "*/*", "Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3", - "User-Agent" => "Faraday v0.11.0" + "User-Agent" => "Faraday v0.12.2" }) .to_return(status: 200, body: "[\"http://localhost\"]", headers: {}) post :create, params: {redirect_uris: ["http://localhost"], client_name: "diaspora client", @@ -28,7 +28,7 @@ describe Api::OpenidConnect::ClientsController, type: :controller, suppress_csrf .with(headers: { "Accept" => "*/*", "Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3", - "User-Agent" => "Faraday v0.11.0" + "User-Agent" => "Faraday v0.12.2" }) .to_return(status: 200, body: "[\"http://localhost\"]", headers: {}) post :create, params: {redirect_uris: ["http://localhost"], client_name: "diaspora client", @@ -89,14 +89,14 @@ describe Api::OpenidConnect::ClientsController, type: :controller, suppress_csrf .with(headers: { "Accept" => "*/*", "Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3", - "User-Agent" => "Faraday v0.11.0" + "User-Agent" => "Faraday v0.12.2" }) .to_return(status: 200, body: "[\"http://localhost\"]", headers: {}) stub_request(:get, "https://kentshikama.com/api/openid_connect/jwks.json") .with(headers: { "Accept" => "*/*", "Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3", - "User-Agent" => "Faraday v0.11.0" + "User-Agent" => "Faraday v0.12.2" }) .to_return(status: 200, body: "{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"n\":\"qpW\",\"use\":\"sig\"}]}", headers: {}) diff --git a/spec/javascripts/app/views/notification_dropdown_view_spec.js b/spec/javascripts/app/views/notification_dropdown_view_spec.js index 5a1452672..725ae0d57 100644 --- a/spec/javascripts/app/views/notification_dropdown_view_spec.js +++ b/spec/javascripts/app/views/notification_dropdown_view_spec.js @@ -73,41 +73,34 @@ describe("app.views.NotificationDropdown", function() { describe("updateScrollbar", function() { it("Initializes perfectScrollbar", function() { - this.view.perfectScrollbarInitialized = false; - spyOn($.fn, "perfectScrollbar"); + this.view.perfectScrollbar = null; + spyOn(window, "PerfectScrollbar"); this.view.updateScrollbar(); - expect($.fn.perfectScrollbar).toHaveBeenCalledWith(); - expect($.fn.perfectScrollbar.calls.mostRecent().object).toEqual(this.view.dropdownNotifications); - expect(this.view.perfectScrollbarInitialized).toBeTruthy(); + expect(window.PerfectScrollbar).toHaveBeenCalledWith(this.view.dropdownNotifications[0]); + expect(this.view.perfectScrollbar).not.toBeNull(); }); it("Updates perfectScrollbar", function() { - this.view.perfectScrollbarInitialized = true; - this.view.dropdownNotifications.perfectScrollbar(); - spyOn($.fn, "perfectScrollbar"); + this.view.perfectScrollbar = new PerfectScrollbar(this.view.dropdownNotifications[0]); + spyOn(this.view.perfectScrollbar, "update"); this.view.updateScrollbar(); - expect($.fn.perfectScrollbar).toHaveBeenCalledWith("update"); - expect($.fn.perfectScrollbar.calls.mostRecent().object).toEqual(this.view.dropdownNotifications); - expect(this.view.perfectScrollbarInitialized).toBeTruthy(); + expect(this.view.perfectScrollbar.update).toHaveBeenCalled(); }); }); describe("destroyScrollbar", function() { it("destroys perfectScrollbar", function() { - this.view.perfectScrollbarInitialized = true; - this.view.dropdownNotifications.perfectScrollbar(); - spyOn($.fn, "perfectScrollbar"); + this.view.perfectScrollbar = new PerfectScrollbar(this.view.dropdownNotifications[0]); + var spy = jasmine.createSpy(); + spyOn(this.view.perfectScrollbar, "destroy").and.callFake(spy); this.view.destroyScrollbar(); - expect($.fn.perfectScrollbar).toHaveBeenCalledWith("destroy"); - expect($.fn.perfectScrollbar.calls.mostRecent().object).toEqual(this.view.dropdownNotifications); - expect(this.view.perfectScrollbarInitialized).toBeFalsy(); + expect(spy).toHaveBeenCalled(); + expect(this.view.perfectScrollbar).toBeNull(); }); it("doesn't destroy perfectScrollbar if it isn't initialized", function() { - this.view.perfectScrollbarInitialized = false; - spyOn($.fn, "perfectScrollbar"); - this.view.destroyScrollbar(); - expect($.fn.perfectScrollbar).not.toHaveBeenCalled(); + this.view.perfectScrollbar = null; + expect(this.view.destroyScrollbar).not.toThrow(); }); }); diff --git a/spec/javascripts/support/jasmine.yml b/spec/javascripts/support/jasmine.yml index cec433307..cac5e7fcb 100644 --- a/spec/javascripts/support/jasmine.yml +++ b/spec/javascripts/support/jasmine.yml @@ -80,3 +80,6 @@ spec_dir: spec/javascripts rack_options: Host: '0.0.0.0' + +# TODO: refactor tests, they shouldn't fail when they are run in a random order! +random: false