/**
  * @covers WPGlobus_Core::translate_wp_post
  */
 public function test_translate_wp_post()
 {
     /**
      * We are using a mock, so need this to please the lint
      * @var WP_Post $post
      */
     /**
      * Default behavior (no parameters)
      */
     $post = $this->getMock('WP_Post');
     $post->post_title = '{:en}post_title EN{:}{:ru}post_title RU{:}';
     $post->post_content = '{:en}post_content EN{:}{:ru}post_content RU{:}';
     $post->post_excerpt = '{:en}post_excerpt EN{:}{:ru}post_excerpt RU{:}';
     /**
      * nav-menu's additional fields do not exist in the WP_Post class
      */
     /** @noinspection PhpUndefinedFieldInspection */
     $post->title = '{:en}title EN{:}{:ru}title RU{:}';
     /** @noinspection PhpUndefinedFieldInspection */
     $post->attr_title = '{:en}attr_title EN{:}{:ru}attr_title RU{:}';
     WPGlobus_Core::translate_wp_post($post);
     self::assertEquals('post_title EN', $post->post_title, 'post_title');
     self::assertEquals('post_content EN', $post->post_content, 'post_content');
     self::assertEquals('post_excerpt EN', $post->post_excerpt, 'post_excerpt');
     /** @noinspection PhpUndefinedFieldInspection */
     self::assertEquals('title EN', $post->title, 'title');
     /** @noinspection PhpUndefinedFieldInspection */
     self::assertEquals('attr_title EN', $post->attr_title, 'attr_title');
     unset($post);
     /**
      * Translate to a language other than the current one
      */
     $post = $this->getMock('WP_Post');
     $post->post_title = '{:en}post_title EN{:}{:ru}post_title RU{:}';
     WPGlobus_Core::translate_wp_post($post, 'ru');
     self::assertEquals('post_title RU', $post->post_title, 'post_title');
     unset($post);
     /**
      * Translate to a non-existing language - return in default language
      */
     $post = $this->getMock('WP_Post');
     $post->post_title = '{:en}post_title EN{:}{:ru}post_title RU{:}';
     $post->post_content = '{:en}post_content EN{:}{:xx}post_content XX{:}';
     WPGlobus_Core::translate_wp_post($post, 'xx');
     self::assertEquals('post_title EN', $post->post_title, 'post_title');
     self::assertEquals('post_content XX', $post->post_content, 'post_content');
     unset($post);
     /**
      * Repeated attempt to translate has no effect, when called with no parameters,
      * because we pass the post object by reference
      */
     $post = $this->getMock('WP_Post');
     $post->post_title = '{:en}post_title EN{:}{:ru}post_title RU{:}';
     WPGlobus_Core::translate_wp_post($post, 'en');
     self::assertEquals('post_title EN', $post->post_title, 'post_title');
     WPGlobus_Core::translate_wp_post($post, 'ru');
     self::assertEquals('post_title EN', $post->post_title, 'post_title');
     unset($post);
 }
Exemplo n.º 2
0
 /**
  * Filter @see get_pages
  * @qa See a list of available pages in the "Parent Page" metabox when editing a page.
  *
  * @param WP_Post[] $pages
  *
  * @return WP_Post[]
  */
 public static function filter__get_pages($pages)
 {
     foreach ($pages as &$_page) {
         WPGlobus_Core::translate_wp_post($_page, WPGlobus::Config()->language);
     }
     unset($_page);
     reset($pages);
     return $pages;
 }