ticket_article_twitter_test.rb 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. # encoding: utf-8
  2. require 'test_helper'
  3. class TicketArticleTwitter < ActiveSupport::TestCase
  4. test 'preferences cleanup' do
  5. org_community = Organization.create_if_not_exists(
  6. name: 'Zammad Foundation',
  7. )
  8. user_community = User.create_or_update(
  9. login: 'article.twitter@example.org',
  10. firstname: 'Article',
  11. lastname: 'Twitter',
  12. email: 'article.twitter@example.org',
  13. password: '',
  14. active: true,
  15. roles: [ Role.find_by(name: 'Customer') ],
  16. organization_id: org_community.id,
  17. updated_by_id: 1,
  18. created_by_id: 1,
  19. )
  20. ticket1 = Ticket.create!(
  21. group_id: Group.first.id,
  22. customer_id: user_community.id,
  23. title: 'Tweet 1!',
  24. updated_by_id: 1,
  25. created_by_id: 1,
  26. )
  27. article1 = Ticket::Article.create!(
  28. ticket_id: ticket1.id,
  29. type_id: Ticket::Article::Type.find_by(name: 'twitter status').id,
  30. sender_id: Ticket::Article::Sender.find_by(name: 'Customer').id,
  31. from: '@example',
  32. body: 'some tweet',
  33. internal: false,
  34. preferences: TweetBase.new.preferences_cleanup(ActiveSupport::HashWithIndifferentAccess.new(
  35. twitter: {
  36. 'mention_ids' => [1_234_567_890],
  37. 'geo' => Twitter::NullObject.new,
  38. 'retweeted' => false,
  39. 'possibly_sensitive' => false,
  40. 'in_reply_to_user_id' => 1_234_567_890,
  41. 'place' => Twitter::NullObject.new,
  42. 'retweet_count' => 0,
  43. 'source' => '<a href="http://example.com/software/tweetbot/mac" rel="nofollow">Tweetbot for Mac</a>',
  44. 'favorited' => false,
  45. 'truncated' => false
  46. },
  47. links: [
  48. {
  49. url: 'https://twitter.com/statuses/123',
  50. target: '_blank',
  51. name: 'on Twitter',
  52. },
  53. ],
  54. )),
  55. updated_by_id: 1,
  56. created_by_id: 1,
  57. )
  58. assert(article1.preferences[:twitter])
  59. assert_equal(1_234_567_890, article1.preferences[:twitter][:mention_ids][0])
  60. assert_nil(article1.preferences[:twitter][:geo])
  61. assert_equal(NilClass, article1.preferences[:twitter][:geo].class)
  62. end
  63. end