u1 = self::factory()->user->create( array(
'display_name' => 'Unit Test',
'user_email' => 'test1@example.com',
) );
$this->u2 = self::factory()->user->create( array(
'display_name' => 'Unit Test2',
'user_email' => 'test2@example.com',
) );
}
public function test_valid_subject() {
$message = 'test';
$email = new BP_Email( 'activity-at-message' );
$email->set_subject( $message )->set_tokens( array( 'poster.name' => 'example' ) );
$this->assertSame( $message, $email->get_subject() );
}
public function test_valid_html_content() {
$message = 'test';
$email = new BP_Email( 'activity-at-message' );
$email->set_content_html( $message );
$email->set_content_type( 'html' );
$this->assertSame( $message, $email->get_content() );
}
public function test_valid_plaintext_content() {
$message = 'test';
$email = new BP_Email( 'activity-at-message' );
$email->set_content_plaintext( $message );
$email->set_content_type( 'plaintext' );
$this->assertSame( $message, $email->get_content() );
}
public function test_valid_template() {
$message = 'test';
$email = new BP_Email( 'activity-at-message' );
$email->set_template( $message );
$this->assertSame( $message, $email->get_template() );
}
public function test_tokens() {
$email = new BP_Email( 'activity-at-message' );
$default_tokens = $email->get_tokens();
$tokens = array( 'test1' => 'hello', 'test2' => 'world' );
$email->set_tokens( $tokens );
$this->assertSame(
array_keys( $tokens + $default_tokens ),
array_keys( $email->get_tokens() )
);
$this->assertSame(
array_values( $tokens + $default_tokens ),
array_values( $email->get_tokens() )
);
}
public function test_headers() {
$email = new BP_Email( 'activity-at-message' );
$default_headers = $email->get_headers();
$headers = array( 'custom_header' => 'custom_value' );
$email->set_headers( $headers );
$this->assertSame( $headers + $default_headers, $email->get_headers() );
}
public function test_validation() {
$email = new BP_Email( 'activity-at-message' );
$email->set_from( 'test1@example.com' )->set_to( 'test2@example.com' )->set_subject( 'testing' );
$email->set_content_html( 'testing' )->set_tokens( array( 'poster.name' => 'example' ) );
$this->assertTrue( $email->validate() );
}
public function test_invalid_characters_are_stripped_from_tokens() {
$email = new BP_Email( 'activity-at-message' );
$default_tokens = $email->get_tokens();
$email->set_tokens( array( 'te{st}1' => 'hello world' ) );
$this->assertSame(
array_keys( array( 'test1' => 'hello world' ) + $default_tokens ),
array_keys( $email->get_tokens() )
);
}
public function test_token_are_escaped() {
$token = '