diff --git a/core/modules/node/node.test b/core/modules/node/node.test index 1dbcaf3..6334347 100644 --- a/core/modules/node/node.test +++ b/core/modules/node/node.test @@ -1450,6 +1450,65 @@ class NodeTypeTestCase extends NodeWebTestCase { } /** + * Tests related to node type initial language. + */ +class NodeTypeInitalLanguageTestCase extends NodeWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Node type initial language', + 'description' => 'Tests node type initial language settings.', + 'group' => 'Node', + ); + } + + function setUp() { + parent::setUp(array('language')); + $web_user = $this->drupalCreateUser(array('bypass node access', 'administer content types', 'administer languages')); + $this->drupalLogin($web_user); + } + + /** + * Tests the node type initial language defaults, and modify them. + * + * The default initial language must be the site's default, and the language + * locked option must be on. + */ + function testNodeTypeInitialLanguageDefaults() { + $this->drupalGet('admin/structure/types/manage/article'); + $this->assertOptionSelected('edit-node-type-language-default', 'site_default', 'The default inital language is the site default.'); + $this->assertFieldChecked('edit-node-type-language-locked', 'Language is locked by default.'); + + $this->drupalGet('node/add/article'); + $this->assertRaw('select disabled="disabled" id="edit-langcode"', 'Language is not selectable on node add/edit page when language is locked.'); + $this->assertOptionSelected('edit-langcode', language_default()->langcode, 'The inital language is the site default on the node add page.'); + + // Adds a new language and set it as default. + $edit = array( + 'predefined_langcode' => 'hu', + ); + $this->drupalPost('admin/config/regional/language/add', $edit, t('Add language')); + $edit = array( + 'site_default' => 'hu', + ); + $this->drupalPost('admin/config/regional/language', $edit, t('Save configuration')); + + // Tests the initial language after changing the site default language. + $this->drupalGet('node/add/article'); + $this->assertOptionSelected('edit-langcode', 'hu', 'The inital language is the site default on the node add page after the site default language is changed.'); + + // Changes the inital language settings. + $edit = array( + 'node_type_language_default' => 'en', + 'node_type_language_locked' => FALSE, + ); + $this->drupalPost('admin/structure/types/manage/article', $edit, t('Save content type')); + $this->drupalGet('node/add/article'); + $this->assertNoRaw('select disabled="disabled" id="edit-langcode"', "Language is selectable on node add/edit page when language isn't locked."); + $this->assertOptionSelected('edit-langcode', 'en', 'The inital language is the previously selected language on the node add page.'); + } +} + +/** * Test node type customizations persistence. */ class NodeTypePersistenceTestCase extends NodeWebTestCase { diff --git a/core/modules/simpletest/drupal_web_test_case.php b/core/modules/simpletest/drupal_web_test_case.php index 7163739..e84d0ab 100644 --- a/core/modules/simpletest/drupal_web_test_case.php +++ b/core/modules/simpletest/drupal_web_test_case.php @@ -935,7 +935,7 @@ class DrupalWebTestCase extends DrupalTestCase { 'sticky' => 0, 'type' => 'page', 'revisions' => NULL, - 'langcode' => LANGUAGE_NOT_SPECIFIED, + 'langcode' => language_default()->default, ); // Use the original node's created time for existing nodes.