assertFalse($builder->validate(['username', 'culero23', ['es']])); } public function test_can_not_validate_a_word_with_numbers_in_strict_mode() { $builder = new ProfaneValidatorBuilder(); $this->assertTrue($builder->validate(['username', 'culero23', ['es']], true)); } public function test_can_validate_a_text() { $builder = new ProfaneValidatorBuilder(); $this->assertFalse($builder->validate(['description', 'fck you bitch. 幹!', ['es', 'en', 'zh-tw']])); } public function test_can_evaluate_profanity_of_a_word() { $builder = new ProfaneValidatorBuilder(); $word = 'fuck'; $this->assertTrue($builder->build()->isProfane($word)); } public function test_can_evaluate_profanity_of_a_sentence() { $builder = new ProfaneValidatorBuilder(); $word = 'fuck you if you read this'; $this->assertTrue($builder->build()->isProfane($word)); } public function test_can_evaluate_profanity_of_a_sentence_in_strict_mode() { $builder = new ProfaneValidatorBuilder(); $word = 'fuck you if you read this'; $this->assertTrue($builder->build()->isProfane($word), true); } public function test_can_evaluate_profanity_of_a_html_string() { $builder = new ProfaneValidatorBuilder(); $word = 'fuck you if you read this.'; $this->assertTrue($builder->build()->isProfane($word)); } public function test_can_evaluate_as_caseless_mode() { $builder = new ProfaneValidatorBuilder(); $word = 'FUCK you BITCH if you read this.'; $this->assertTrue($builder->build()->isProfane($word)); } public function test_match_content() { $builder = new ProfaneValidatorBuilder(); // it thinks class ~= ass $this->assertTrue($builder->build()->isProfane('class')); // but this should be profane $this->assertTrue($builder->build()->isProfane('sucker96')); } public function test_match_exact_word_in_strict_mode() { $builder = new ProfaneValidatorBuilder(); // class is a safe word $this->assertFalse($builder->build()->isProfane('class', true)); // in strict mode this will pass a safe word $this->assertFalse($builder->build()->isProfane('sucker96', true)); } public function test_can_validate_a_bad_word_with_accent() { $builder = new ProfaneValidatorBuilder('sk'); $word = 'piča'; $this->assertTrue($builder->build()->isProfane($word)); } public function test_enie_in_spanish_is_evaluated() { $builder = new ProfaneValidatorBuilder('es'); // in spanish coño =! cono $word = 'coño'; $this->assertTrue($builder->build()->isProfane($word)); } public function test_can_validate_a_word_in_greek() { $this->mockConfigs(); $builder = new ProfaneValidatorBuilder('gr'); $word = 'μαλάκας'; $this->assertTrue($builder->build()->isProfane($word)); } public function test_can_validate_a_text_in_greek() { $this->mockConfigs(); $builder = new ProfaneValidatorBuilder(); $this->assertFalse($builder->validate(['description', 'εισαι πουτανα', ['en', 'gr']])); } public function test_can_validate_a_word_in_french() { $this->mockConfigs(); $builder = new ProfaneValidatorBuilder(); $this->assertFalse($builder->validate(['description', 'Va te faire enculer, sac à merde', ['en', 'fr']])); } public function test_can_validate_a_word_in_french_canadian() { $this->mockConfigs(); $builder = new ProfaneValidatorBuilder(); $this->assertFalse($builder->validate(['description', 'Décrisse gros cave', ['en', 'fr-ca']])); } }