Home | History | Annotate | Download | only in tests
      1 // Copyright 2015 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_TESTS_RECT_BLINK_H_
      6 #define MOJO_PUBLIC_CPP_BINDINGS_TESTS_RECT_BLINK_H_
      7 
      8 #include "base/logging.h"
      9 
     10 namespace mojo {
     11 namespace test {
     12 
     13 // An implementation of a hypothetical Rect type specifically for consumers in
     14 // in Blink. Unlike the Chromium variant (see rect_chromium.h) this does not
     15 // support negative origin coordinates and is not copyable.
     16 class RectBlink {
     17  public:
     18   RectBlink() {}
     19   RectBlink(int x, int y, int width, int height) :
     20       x_(x), y_(y), width_(width), height_(height) {
     21     DCHECK_GE(x_, 0);
     22     DCHECK_GE(y_, 0);
     23     DCHECK_GE(width_, 0);
     24     DCHECK_GE(height_, 0);
     25   }
     26   ~RectBlink() {}
     27 
     28   int x() const { return x_; }
     29   void setX(int x) {
     30     DCHECK_GE(x, 0);
     31     x_ = x;
     32   }
     33 
     34   int y() const { return y_; }
     35   void setY(int y) {
     36     DCHECK_GE(y, 0);
     37     y_ = y;
     38   }
     39 
     40   int width() const { return width_; }
     41   void setWidth(int width) {
     42     DCHECK_GE(width, 0);
     43     width_ = width;
     44   }
     45 
     46   int height() const { return height_; }
     47   void setHeight(int height) {
     48     DCHECK_GE(height, 0);
     49     height_ = height;
     50   }
     51 
     52   int computeArea() const { return width_ * height_; }
     53 
     54  private:
     55   int x_ = 0;
     56   int y_ = 0;
     57   int width_ = 0;
     58   int height_ = 0;
     59 };
     60 
     61 }  // namespace test
     62 }  // namespace mojo
     63 
     64 #endif  // MOJO_PUBLIC_CPP_BINDINGS_TESTS_RECT_BLINK_H_
     65