public function testParseRecordFields()
 {
     $content = 'Hi $Name, I am testing the application named $App';
     $variables = ['Name' => 'Tester', 'App' => 'MWM Utilities'];
     $parsed = (string) Utilities::parse_record_fields($content, $variables);
     // Check if variables are parsed properly in content
     $this->assertEquals('Hi Tester, I am testing the application named MWM Utilities', $parsed);
     $record = ArrayData::create($variables);
     $parsed = (string) Utilities::parse_record_fields($content, [], $record);
     // Check if record is parsed properly in content
     $this->assertEquals('Hi Tester, I am testing the application named MWM Utilities', $parsed);
     $parsed = (string) Utilities::parse_record_fields($content, ['Name' => 'Tester 2'], $record);
     // Check if record variables are overridden with array in content
     $this->assertEquals('Hi Tester 2, I am testing the application named MWM Utilities', $parsed);
     $parsed = (string) Utilities::parse_record_fields($content, ['Name' => 'Tester 2'], $record, ['App']);
     // Check if ignored variables work
     $this->assertEquals('Hi Tester 2, I am testing the application named ', $parsed);
     $content = '<b>Hi $Name</b>, I am testing the application named $App';
     $parsed = (string) Utilities::parse_record_fields($content, $variables);
     // Check if HTML stays as long as it is allowed
     $this->assertEquals('<b>Hi Tester</b>, I am testing the application named MWM Utilities', $parsed);
     $parsed = (string) Utilities::parse_record_fields($content, $variables, null, [], false);
     // Check if HTML is encoded if not allowed
     $this->assertEquals('&lt;b&gt;Hi Tester&lt;/b&gt;, I am testing the application named MWM Utilities', $parsed);
 }