Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(124)

Side by Side Diff: content/browser/frame_host/frame_tree_unittest.cc

Issue 1500973002: This patch adds NextSibling() to FrameTreeNode. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased and addressed comment. Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/browser/frame_host/frame_tree_node.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/frame_host/frame_tree.h" 5 #include "content/browser/frame_host/frame_tree.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 EXPECT_EQ(nullptr, frame_tree->FindByRoutingID(process_id, 37)); 335 EXPECT_EQ(nullptr, frame_tree->FindByRoutingID(process_id, 37));
336 336
337 // Ensure they can be found by name, if they have one. 337 // Ensure they can be found by name, if they have one.
338 EXPECT_EQ(root, frame_tree->FindByName(std::string())); 338 EXPECT_EQ(root, frame_tree->FindByName(std::string()));
339 EXPECT_EQ(child0, frame_tree->FindByName("child0")); 339 EXPECT_EQ(child0, frame_tree->FindByName("child0"));
340 EXPECT_EQ(child1, frame_tree->FindByName("child1")); 340 EXPECT_EQ(child1, frame_tree->FindByName("child1"));
341 EXPECT_EQ(grandchild, frame_tree->FindByName("grandchild")); 341 EXPECT_EQ(grandchild, frame_tree->FindByName("grandchild"));
342 EXPECT_EQ(nullptr, frame_tree->FindByName("no such frame")); 342 EXPECT_EQ(nullptr, frame_tree->FindByName("no such frame"));
343 } 343 }
344 344
345 // Check that PreviousSibling() is retrieved correctly. 345 // Check that PreviousSibling() and NextSibling() are retrieved correctly.
346 TEST_F(FrameTreeTest, PreviousSibling) { 346 TEST_F(FrameTreeTest, GetSibling) {
347 main_test_rfh()->InitializeRenderFrameIfNeeded(); 347 main_test_rfh()->InitializeRenderFrameIfNeeded();
348 348
349 // Add a few child frames to the main frame. 349 // Add a few child frames to the main frame.
350 FrameTree* frame_tree = contents()->GetFrameTree(); 350 FrameTree* frame_tree = contents()->GetFrameTree();
351 FrameTreeNode* root = frame_tree->root(); 351 FrameTreeNode* root = frame_tree->root();
352 main_test_rfh()->OnCreateChildFrame( 352 main_test_rfh()->OnCreateChildFrame(
353 22, blink::WebTreeScopeType::Document, "child0", "uniqueName0", 353 22, blink::WebTreeScopeType::Document, "child0", "uniqueName0",
354 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties()); 354 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties());
355 main_test_rfh()->OnCreateChildFrame( 355 main_test_rfh()->OnCreateChildFrame(
356 23, blink::WebTreeScopeType::Document, "child1", "uniqueName1", 356 23, blink::WebTreeScopeType::Document, "child1", "uniqueName1",
357 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties()); 357 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties());
358 main_test_rfh()->OnCreateChildFrame( 358 main_test_rfh()->OnCreateChildFrame(
359 24, blink::WebTreeScopeType::Document, "child2", "uniqueName2", 359 24, blink::WebTreeScopeType::Document, "child2", "uniqueName2",
360 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties()); 360 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties());
361 FrameTreeNode* child0 = root->child_at(0); 361 FrameTreeNode* child0 = root->child_at(0);
362 FrameTreeNode* child1 = root->child_at(1); 362 FrameTreeNode* child1 = root->child_at(1);
363 FrameTreeNode* child2 = root->child_at(2); 363 FrameTreeNode* child2 = root->child_at(2);
364 364
365 // Add one grandchild frame. 365 // Add one grandchild frame.
366 child1->current_frame_host()->OnCreateChildFrame( 366 child1->current_frame_host()->OnCreateChildFrame(
367 33, blink::WebTreeScopeType::Document, "grandchild", "uniqueName3", 367 33, blink::WebTreeScopeType::Document, "grandchild", "uniqueName3",
368 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties()); 368 blink::WebSandboxFlags::None, blink::WebFrameOwnerProperties());
369 FrameTreeNode* grandchild = child1->child_at(0); 369 FrameTreeNode* grandchild = child1->child_at(0);
370 370
371 // Test PreviousSibling().
371 EXPECT_EQ(nullptr, root->PreviousSibling()); 372 EXPECT_EQ(nullptr, root->PreviousSibling());
372 EXPECT_EQ(nullptr, child0->PreviousSibling()); 373 EXPECT_EQ(nullptr, child0->PreviousSibling());
373 EXPECT_EQ(child0, child1->PreviousSibling()); 374 EXPECT_EQ(child0, child1->PreviousSibling());
374 EXPECT_EQ(child1, child2->PreviousSibling()); 375 EXPECT_EQ(child1, child2->PreviousSibling());
375 EXPECT_EQ(nullptr, grandchild->PreviousSibling()); 376 EXPECT_EQ(nullptr, grandchild->PreviousSibling());
377
378 // Test NextSibling().
379 EXPECT_EQ(nullptr, root->NextSibling());
380 EXPECT_EQ(child1, child0->NextSibling());
381 EXPECT_EQ(child2, child1->NextSibling());
382 EXPECT_EQ(nullptr, child2->NextSibling());
383 EXPECT_EQ(nullptr, grandchild->NextSibling());
376 } 384 }
377 385
378 // Do some simple manipulations of the frame tree, making sure that 386 // Do some simple manipulations of the frame tree, making sure that
379 // WebContentsObservers see a consistent view of the tree as we go. 387 // WebContentsObservers see a consistent view of the tree as we go.
380 TEST_F(FrameTreeTest, ObserverWalksTreeDuringFrameCreation) { 388 TEST_F(FrameTreeTest, ObserverWalksTreeDuringFrameCreation) {
381 TreeWalkingWebContentsLogger activity(contents()); 389 TreeWalkingWebContentsLogger activity(contents());
382 contents()->NavigateAndCommit(GURL("http://www.google.com")); 390 contents()->NavigateAndCommit(GURL("http://www.google.com"));
383 EXPECT_EQ("RenderFrameCreated(2) -> 2: []", activity.GetLog()); 391 EXPECT_EQ("RenderFrameCreated(2) -> 2: []", activity.GetLog());
384 392
385 FrameTree* frame_tree = contents()->GetFrameTree(); 393 FrameTree* frame_tree = contents()->GetFrameTree();
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 // Crash the renderer. 496 // Crash the renderer.
489 main_test_rfh()->GetProcess()->SimulateCrash(); 497 main_test_rfh()->GetProcess()->SimulateCrash();
490 498
491 // Ensure they cannot be found by id after the process has crashed. 499 // Ensure they cannot be found by id after the process has crashed.
492 EXPECT_FALSE(FrameTreeNode::GloballyFindByID(id1)); 500 EXPECT_FALSE(FrameTreeNode::GloballyFindByID(id1));
493 EXPECT_FALSE(FrameTreeNode::GloballyFindByID(id2)); 501 EXPECT_FALSE(FrameTreeNode::GloballyFindByID(id2));
494 EXPECT_FALSE(FrameTreeNode::GloballyFindByID(id3)); 502 EXPECT_FALSE(FrameTreeNode::GloballyFindByID(id3));
495 } 503 }
496 504
497 } // namespace content 505 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/frame_tree_node.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698