Commit 104f6cd6 authored by catch's avatar catch
Browse files

Issue #2851504 by alexpott, vomiand, Vj, BalajiDS, cilefen, tamasd: "Illegal...

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 - "

(cherry picked from commit 4397d8d5)
parent 2dc4a8ac
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -220,7 +220,7 @@ public function addFormElements(array $form, FormStateInterface $form_state, Nod
      // 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;
    }
+22 −0
Original line number Diff line number Diff line
@@ -162,4 +162,26 @@ protected function assertOrderInPage(array $items) {
    $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.');
  }

}