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

Issue 7605009: Implement drag and drop testing in a platform independent way. (Closed)

Created:
9 years, 4 months ago by prasadt
Modified:
9 years, 4 months ago
Reviewers:
Dmitry Titov, jianli
CC:
chromium-reviews, jennb, Dmitry Titov, jianli, prasadt, dcheng, Paweł Hajdan Jr.
Visibility:
Public.

Description

Implement drag and drop testing in a platform independent way. The CL also adds a simple framework for writing platform independent tests. TEST=PanelBrowserTest.DragPanels BUG=73936 modified: chrome/browser/ui/panels/native_panel.h modified: chrome/browser/ui/panels/panel_browser_view.cc modified: chrome/browser/ui/panels/panel_browser_view.h modified: chrome/browser/ui/panels/panel_browser_view_browsertest.cc modified: chrome/browser/ui/panels/panel_browser_window_cocoa.h modified: chrome/browser/ui/panels/panel_browser_window_cocoa.mm modified: chrome/browser/ui/panels/panel_browser_window_gtk.cc modified: chrome/browser/ui/panels/panel_browser_window_gtk.h modified: chrome/browser/ui/panels/panel_browsertest.cc Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=96571

Patch Set 1 #

Total comments: 11

Patch Set 2 : Code review feedback and build bot errors for windows. #

Total comments: 6

Patch Set 3 : Change gfx::Point parameter to const gfx::Point& #

Patch Set 4 : Fix test failure on windows. #

Patch Set 5 : Change OnTitle* method sigs. Deleted PanelBrowserViewTest.TitleBarMouseEvent #

Patch Set 6 : Fix typo causing build error on windows. #

Total comments: 24

Patch Set 7 : More code review feedback. #

Total comments: 18

Patch Set 8 : More code review feedback. #

Patch Set 9 : Fixed a build error on mac only. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+324 lines, -304 lines) Patch
M chrome/browser/ui/panels/native_panel.h View 1 2 3 4 5 6 7 8 1 chunk +9 lines, -4 lines 0 comments Download
M chrome/browser/ui/panels/panel_browser_frame_view.cc View 1 2 3 4 1 chunk +5 lines, -3 lines 0 comments Download
M chrome/browser/ui/panels/panel_browser_view.h View 1 2 3 4 4 chunks +5 lines, -5 lines 0 comments Download
M chrome/browser/ui/panels/panel_browser_view.cc View 1 2 3 4 5 6 7 3 chunks +55 lines, -11 lines 0 comments Download
M chrome/browser/ui/panels/panel_browser_view_browsertest.cc View 1 2 3 4 3 chunks +4 lines, -268 lines 0 comments Download
M chrome/browser/ui/panels/panel_browser_window_cocoa.h View 2 chunks +1 line, -3 lines 0 comments Download
M chrome/browser/ui/panels/panel_browser_window_cocoa.mm View 1 2 3 4 5 6 7 1 chunk +6 lines, -2 lines 0 comments Download
M chrome/browser/ui/panels/panel_browser_window_gtk.h View 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/browser/ui/panels/panel_browser_window_gtk.cc View 1 2 3 4 5 6 7 3 chunks +81 lines, -6 lines 0 comments Download
M chrome/browser/ui/panels/panel_browsertest.cc View 1 2 3 4 5 6 7 4 chunks +156 lines, -0 lines 0 comments Download

Messages

Total messages: 12 (0 generated)
prasadt
9 years, 4 months ago (2011-08-09 20:40:10 UTC) #1
prasadt
I tested this on Linux. Relying on try bots for testing on windows. Test disabled ...
9 years, 4 months ago (2011-08-09 20:40:51 UTC) #2
jianli
http://codereview.chromium.org/7605009/diff/1/chrome/browser/ui/panels/native_panel.h File chrome/browser/ui/panels/native_panel.h (right): http://codereview.chromium.org/7605009/diff/1/chrome/browser/ui/panels/native_panel.h#newcode14 chrome/browser/ui/panels/native_panel.h:14: class Panel; We already include panel.h. I think this ...
9 years, 4 months ago (2011-08-09 21:10:23 UTC) #3
prasadt
Thanks for the feedback. http://codereview.chromium.org/7605009/diff/1/chrome/browser/ui/panels/native_panel.h File chrome/browser/ui/panels/native_panel.h (right): http://codereview.chromium.org/7605009/diff/1/chrome/browser/ui/panels/native_panel.h#newcode14 chrome/browser/ui/panels/native_panel.h:14: class Panel; On 2011/08/09 21:10:23, ...
9 years, 4 months ago (2011-08-09 23:05:04 UTC) #4
jianli
http://codereview.chromium.org/7605009/diff/1/chrome/browser/ui/panels/panel_browser_view.cc File chrome/browser/ui/panels/panel_browser_view.cc (right): http://codereview.chromium.org/7605009/diff/1/chrome/browser/ui/panels/panel_browser_view.cc#newcode405 chrome/browser/ui/panels/panel_browser_view.cc:405: panel_browser_view_->OnTitleBarMousePressed(pressed); On 2011/08/09 23:05:04, prasadt wrote: > On 2011/08/09 ...
9 years, 4 months ago (2011-08-09 23:24:16 UTC) #5
prasadt
http://codereview.chromium.org/7605009/diff/1/chrome/browser/ui/panels/panel_browser_view.cc File chrome/browser/ui/panels/panel_browser_view.cc (right): http://codereview.chromium.org/7605009/diff/1/chrome/browser/ui/panels/panel_browser_view.cc#newcode405 chrome/browser/ui/panels/panel_browser_view.cc:405: panel_browser_view_->OnTitleBarMousePressed(pressed); On 2011/08/09 23:24:16, jianli wrote: > On 2011/08/09 ...
9 years, 4 months ago (2011-08-09 23:49:40 UTC) #6
prasadt
Uploaded a patch to fix the test failing on windows.
9 years, 4 months ago (2011-08-10 23:18:58 UTC) #7
prasadt
http://codereview.chromium.org/7605009/diff/1/chrome/browser/ui/panels/panel_browser_view.cc File chrome/browser/ui/panels/panel_browser_view.cc (right): http://codereview.chromium.org/7605009/diff/1/chrome/browser/ui/panels/panel_browser_view.cc#newcode405 chrome/browser/ui/panels/panel_browser_view.cc:405: panel_browser_view_->OnTitleBarMousePressed(pressed); On 2011/08/09 23:49:41, prasadt wrote: > On 2011/08/09 ...
9 years, 4 months ago (2011-08-11 00:26:41 UTC) #8
jianli
Can we also add test cases to cover dragging a panel to swap with more ...
9 years, 4 months ago (2011-08-11 01:22:54 UTC) #9
prasadt
I'll add the additional test you asked for in a separate patch. http://codereview.chromium.org/7605009/diff/14001/chrome/browser/ui/panels/native_panel.h File chrome/browser/ui/panels/native_panel.h ...
9 years, 4 months ago (2011-08-11 18:11:11 UTC) #10
jianli
LGTM with some minor nits. http://codereview.chromium.org/7605009/diff/14001/chrome/browser/ui/panels/panel_browsertest.cc File chrome/browser/ui/panels/panel_browsertest.cc (right): http://codereview.chromium.org/7605009/diff/14001/chrome/browser/ui/panels/panel_browsertest.cc#newcode313 chrome/browser/ui/panels/panel_browsertest.cc:313: panels.push_back(CreatePanel("PanelTest0", gfx::Rect())); On 2011/08/11 ...
9 years, 4 months ago (2011-08-11 20:52:09 UTC) #11
prasadt
9 years, 4 months ago (2011-08-11 21:07:56 UTC) #12
Addressed the issues.  Will commit in a bit.

http://codereview.chromium.org/7605009/diff/14001/chrome/browser/ui/panels/pa...
File chrome/browser/ui/panels/panel_browsertest.cc (right):

http://codereview.chromium.org/7605009/diff/14001/chrome/browser/ui/panels/pa...
chrome/browser/ui/panels/panel_browsertest.cc:313:
panels.push_back(CreatePanel("PanelTest0", gfx::Rect()));
On 2011/08/11 20:52:09, jianli wrote:
> On 2011/08/11 18:11:11, prasadt wrote:
> > On 2011/08/11 01:22:54, jianli wrote:
> > > The creation of 1st panel can be moved into for loop. You can pass the
size
> to
> > > CreatePanel.
> > 
> > I would rather just use the default size than to try to guess.  We could
have
> > different defaults for different platofrms, screen sizes etc.
> 
> It would be better to pass fixed size to CreatePanel. For now you only have 3
> panels and the default panel width is 240 and it is mostly likely been fine
for
> nowadays screen not smaller than 800x600. However, when you add more panels
for
> new tests as we discussed, we have to pass specific size in order not to
exceed
> 800x600. Furthermore, I think we should call PanelManager::SetWorkArea to use
a
> specific work area, like 800x600, for the testing purpose. This will make the
> tests far less flaky. You can do it in your next patch to add more test cases.

Will look at doing this in my next patch.

http://codereview.chromium.org/7605009/diff/18001/chrome/browser/ui/panels/pa...
File chrome/browser/ui/panels/panel_browser_view.cc (right):

http://codereview.chromium.org/7605009/diff/18001/chrome/browser/ui/panels/pa...
chrome/browser/ui/panels/panel_browser_view.cc:376: class NativePanelTestingWin
: public NativePanelTesting {
On 2011/08/11 20:52:09, jianli wrote:
> Please move this subclass to the anonymous namespace.

Need this class in header file.

http://codereview.chromium.org/7605009/diff/18001/chrome/browser/ui/panels/pa...
chrome/browser/ui/panels/panel_browser_view.cc:391: NativePanelTesting*
NativePanelTesting::Create(NativePanel* native_panel) {
On 2011/08/11 20:52:09, jianli wrote:
> Please add the comment like the following:
>   // static

Done.

http://codereview.chromium.org/7605009/diff/18001/chrome/browser/ui/panels/pa...
File chrome/browser/ui/panels/panel_browser_window_cocoa.mm (right):

http://codereview.chromium.org/7605009/diff/18001/chrome/browser/ui/panels/pa...
chrome/browser/ui/panels/panel_browser_window_cocoa.mm:170: //
NativePanelTesting implementation.
On 2011/08/11 20:52:09, jianli wrote:
> Please add the comment like the following:
>   // static

Done.

http://codereview.chromium.org/7605009/diff/18001/chrome/browser/ui/panels/pa...
File chrome/browser/ui/panels/panel_browser_window_gtk.cc (right):

http://codereview.chromium.org/7605009/diff/18001/chrome/browser/ui/panels/pa...
chrome/browser/ui/panels/panel_browser_window_gtk.cc:319: class
NativePanelTestingGtk : public NativePanelTesting {
On 2011/08/11 20:52:09, jianli wrote:
> Please move this subclass to the anonymous namespace.

Need it in header file.

http://codereview.chromium.org/7605009/diff/18001/chrome/browser/ui/panels/pa...
chrome/browser/ui/panels/panel_browser_window_gtk.cc:335: NativePanelTesting*
NativePanelTesting::Create(NativePanel* native_panel) {
On 2011/08/11 20:52:09, jianli wrote:
> Please add the comment for indicate it is static.

Done.

http://codereview.chromium.org/7605009/diff/18001/chrome/browser/ui/panels/pa...
File chrome/browser/ui/panels/panel_browsertest.cc (right):

http://codereview.chromium.org/7605009/diff/18001/chrome/browser/ui/panels/pa...
chrome/browser/ui/panels/panel_browsertest.cc:177: for (size_t j = 0; j <
panels->size(); ++j) {
On 2011/08/11 20:52:09, jianli wrote:
> Probably more efficient to say:
>   size_t num_panels = panels->size();
>   for (...) {
>     std::vector<int> expected_delta_x_after_drag(num_panels, 0);
>     std::vector<int> expected_delta_x_after_finish(num_panels, 0);

Done.

http://codereview.chromium.org/7605009/diff/18001/chrome/browser/ui/panels/pa...
chrome/browser/ui/panels/panel_browsertest.cc:240: if (delta_x || delta_y) {
On 2011/08/11 20:52:09, jianli wrote:
> We can remove this if test since we do not have this test case.

Done.

http://codereview.chromium.org/7605009/diff/18001/chrome/browser/ui/panels/pa...
chrome/browser/ui/panels/panel_browsertest.cc:251: // Cancel the dragging if
asked.
On 2011/08/11 20:52:09, jianli wrote:
> To be consistent with other comment: dragging => drag

Done.

http://codereview.chromium.org/7605009/diff/18001/chrome/browser/ui/panels/pa...
chrome/browser/ui/panels/panel_browsertest.cc:267: delete panel_testing_to_drag;
On 2011/08/11 20:52:09, jianli wrote:
> Better to use scoped_ptr, instead of self-deleting.

Done.

Powered by Google App Engine
This is Rietveld 408576698