Issue #2851504 by alexpott, vomiand, Vj, BalajiDS, cilefen, tamasd: "Illegal choice 0 in Book element" when switching the book outline field from anything to "- None - "
parent
6b9f37f48f
commit
4397d8d535
|
@ -220,7 +220,7 @@ class BookManager implements BookManagerInterface {
|
|||
// The node can become a new book, if it is not one already.
|
||||
$options = [$nid => $this->t('- Create a new book -')] + $options;
|
||||
}
|
||||
if (!$node->book['bid']) {
|
||||
if (!$node->book['bid'] || $nid === 'new' || $node->book['original_bid'] === 0) {
|
||||
// The node is not currently in the hierarchy.
|
||||
$options = [0 => $this->t('- None -')] + $options;
|
||||
}
|
||||
|
|
|
@ -162,4 +162,26 @@ class BookJavascriptTest extends WebDriverTestBase {
|
|||
$this->assertSame($items, array_values($strings), "Found strings, ordered as: $ordered.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests book outline AJAX request.
|
||||
*/
|
||||
public function testBookAddOutline() {
|
||||
$this->drupalLogin($this->drupalCreateUser(['create book content', 'create new books', 'add content to books']));
|
||||
$this->drupalGet('node/add/book');
|
||||
$assert_session = $this->assertSession();
|
||||
$session = $this->getSession();
|
||||
$page = $session->getPage();
|
||||
|
||||
$page->find('css', '#edit-book')->click();
|
||||
$book_select = $page->findField("book[bid]");
|
||||
$book_select->setValue('new');
|
||||
$assert_session->waitForText('This will be the top-level page in this book.');
|
||||
$assert_session->pageTextContains('This will be the top-level page in this book.');
|
||||
$assert_session->pageTextNotContains('No book selected.');
|
||||
$book_select->setValue(0);
|
||||
$assert_session->waitForText('No book selected.');
|
||||
$assert_session->pageTextContains('No book selected.');
|
||||
$assert_session->pageTextNotContains('This will be the top-level page in this book.');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue