                 height: content.height + content.verticalMargins))
     }
     
+    func testHorizontalBigContentEnforcedFrame() {
+        content = TestLayoutable(sideLength: 1200)
+        content.m(1, 2, 3, 4)
+        var layout = content.layoutScrollContent(
+            container: container,
+            orientation: .horizontal)
+        layout.layoutWith(frame: layoutRect)
+
+        XCTAssertEqual(
+            content.frame,
+            CGRect(
+                x: container.bounds.minX + content.layoutMargins.left,
+                y: container.bounds.minY + content.layoutMargins.top,
+                width: content.width,
+                height: content.height))
+        XCTAssertEqual(
+            container.frame,
+            CGRect(
+                x: layoutRect.minX + container.layoutMargins.left,
+                y: layoutRect.minY + container.layoutMargins.top,
+                width: layoutRect.width - container.horizontalMargins,
+                height: layoutRect.height - container.verticalMargins))
+        XCTAssertEqual(
+            container.contentSize,
+            CGSize(
+                width: content.width + content.horizontalMargins,
+                height: content.height + content.verticalMargins))
+    }
+    
     func testHorizontalSmallContent() {
         content = TestLayoutable(sideLength: 80)
         content.m(1, 2, 3, 4)

                width: content.width + content.horizontalMargins,
                height: content.height + content.verticalMargins))
    }
    
    func testVerticalSmallContent() {
        content = TestLayoutable(sideLength: 100)

                y: layoutRect.minY + container.layoutMargins.top,
                width: content.width + content.horizontalMargins,
                height: content.height + content.verticalMargins))
        XCTAssertEqual(
            container.contentSize,
            CGSize(
                width: content.width + content.horizontalMargins,
                height: content.height + content.verticalMargins))
    }
    
    func testVerticalSmallContentEnforcedFrame() {
        content = TestLayoutable(sideLength: 100)
        content.m(1, 2, 3, 4)
        var layout = content.layoutScrollContent(
            container: container,
            orientation: .vertical)
        layout.layoutWith(frame: layoutRect)
        
        XCTAssertEqual(
            content.frame,
            CGRect(
                x: container.bounds.minX + content.layoutMargins.left,
                y: container.bounds.minY + content.layoutMargins.top,
                width: content.width,
                height: content.height))
        XCTAssertEqual(
            container.frame,
            CGRect(
                x: layoutRect.minX + container.layoutMargins.left,
                y: layoutRect.minY + container.layoutMargins.top,
                width: layoutRect.width - container.horizontalMargins,
                height: layoutRect.height - container.verticalMargins))
        XCTAssertEqual(
            container.contentSize,
            CGSize(
