require "test_helper" class CommentTest < ActiveSupport::TestCase # test "the truth" do # assert true # end setup do @user = FactoryBot.create(:user) @stop_word_hello = FactoryBot.create(:stop_word_hello) end # test "could censor text by text_authen" do # model = Comment.create(:content => "hello world", user: @user) # assert_equal model.reload.content, "goodbye world" # end test "could censor image by image_authen" do # model = Comment.create(:content => "", user: @user) end test "could invoke callback when controller received message" do model = Comment.create(:content => "", user: @user) class ::Comment alias_method :tmp_image_censor_answer_func, :image_censor_answer_func def image_censor_answer_func(image_censor_answer_dict) self.censor_info = image_censor_answer_dict end end content = { "code": 200, "dataId": "#{model.class}-#{model.id}", "extras": {}, "msg": "OK", "results": [{ "label": "sexy", "rate": 77.57, "scene": "porn", "suggestion": "review" }, { "label": "normal", "rate": 100.0, "scene": "terrorism", "suggestion": "pass" }], "taskId": "img20Y846E9bi96RASKO7wXOW-1wBEXo", "url": "https://img-blog.csdn.net/20161015114557738" } model = CensorBear::Aliyun::ImageCheck.analysis_response_content(content) assert_equal model.censor_info["https://img-blog.csdn.net/20161015114557738"][:is_mod], true class ::Comment def image_censor_answer_func(image_censor_answer_dict) tmp_image_censor_answer_func(image_censor_answer_dict) end end end end