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('<b>Hi Tester</b>, I am testing the application named MWM Utilities', $parsed); }