1 /* 2 * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package javafx.scene.layout; 27 28 import com.sun.javafx.pgstub.StubImageLoaderFactory; 29 import com.sun.javafx.pgstub.StubPlatformImageInfo; 30 import com.sun.javafx.pgstub.StubToolkit; 31 import com.sun.javafx.tk.Toolkit; 32 import javafx.geometry.Insets; 33 import javafx.geometry.Side; 34 import javafx.scene.Scene; 35 import javafx.scene.paint.Color; 36 import org.junit.Before; 37 import org.junit.Ignore; 38 import org.junit.Test; 39 40 import java.net.MalformedURLException; 41 import java.net.URI; 42 import java.net.URISyntaxException; 43 import java.net.URL; 44 45 import static javafx.scene.layout.BackgroundSize.*; 46 import static org.junit.Assert.*; 47 48 /** 49 * All of these tests are based on information contained in the CSS 3 borders 50 * and backgrounds specification: http://www.w3.org/TR/css3-background/ 51 * 52 * The "Example" tests are pulled directly from one of the examples in the 53 * spec, and is numbered such as example1_3, meaning "Example 1" in the spec 54 * which is a box with multiple declarations, so declaration 3 (or whatnot). 55 */ 56 public class RegionCSSTest { 57 // The color is drawn behind any background images. 58 // The background color is clipped according to the ???background-clip??? value associated with the bottom-most background image. 59 // Background images are drawn such that the first specified is on "top", closer to the user. But our BackgroundFill's are completely backwards from that! 60 61 // Test "none" in terms of supplying an insets to the first and third but not specifying the second? 62 // Failures to load images should result in "none" equivalence, not in exceptions 63 // 64 private Region region; 65 private Scene scene; 66 private static final String NL = System.getProperty("line.separator"); 67 68 private void processCSS() { 69 scene.getRoot().impl_processCSS(true); 70 } 71 72 private static void installImage(final String str) { 73 74 if (str == null || str.trim().isEmpty()) return; 75 76 URL imageUrl = null; 77 78 try { 79 80 URI uri = new URI(str.trim()); 81 82 // if url doesn't have a scheme 83 if (uri.isAbsolute() == false) { 84 85 final ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader(); 86 final String path = uri.getPath(); 87 88 URL resource = null; 89 90 if (path.startsWith("/")) { 91 resource = contextClassLoader.getResource(path.substring(1)); 92 } else { 93 resource = contextClassLoader.getResource(path); 94 } 95 96 imageUrl = resource; 97 98 } else { 99 // else, url does have a scheme 100 imageUrl = uri.toURL(); 101 } 102 103 } catch (MalformedURLException malf) { 104 105 } catch (URISyntaxException urise) { 106 } 107 108 if (imageUrl != null) { 109 110 StubImageLoaderFactory imageLoaderFactory = 111 ((StubToolkit) Toolkit.getToolkit()).getImageLoaderFactory(); 112 113 imageLoaderFactory.registerImage( 114 imageUrl.toExternalForm(), new StubPlatformImageInfo(100, 100)); 115 } 116 117 } 118 119 @Before public void setUp() { 120 region = new Region(); 121 scene = new Scene(region); 122 123 installImage("javafx/scene/layout/red.png"); 124 installImage("javafx/scene/layout/green.png"); 125 installImage("javafx/scene/layout/blue.png"); 126 installImage("javafx/scene/layout/center-btn.png"); 127 } 128 129 /************************************************************************** 130 * * 131 * Basic tests * 132 * * 133 *************************************************************************/ 134 135 @Test public void nothingSpecified() { 136 region.setStyle("-fx-padding: 1;"); 137 processCSS(); 138 139 assertEquals(new Insets(1), region.getPadding()); 140 assertNull(region.getBackground()); 141 assertNull(region.getBorder()); 142 } 143 144 /************************************************************************** 145 * * 146 * Background Color tests * 147 * * 148 * These include -fx-background-color, -fx-background-radius, and * 149 * -fx-background-insets. * 150 * * 151 *************************************************************************/ 152 153 @Test public void fillIsNull() { 154 region.setStyle("-fx-background-color: null;"); 155 processCSS(); 156 157 assertEquals(new Insets(0), region.getPadding()); 158 assertNull(region.getBackground()); 159 assertNull(region.getBorder()); 160 } 161 162 @Test public void fillIsTransparent() { 163 region.setStyle("-fx-background-color: transparent;"); 164 processCSS(); 165 166 assertNull(region.getBorder()); 167 assertEquals(1, region.getBackground().getFills().size(), 0); 168 169 BackgroundFill fill = region.getBackground().getFills().get(0); 170 BackgroundFill expected = new BackgroundFill(Color.TRANSPARENT, null, null); 171 assertEquals(expected, fill); 172 } 173 174 @Test public void fillIsSpecifiedOnly() { 175 region.setStyle("-fx-background-color: purple;"); 176 processCSS(); 177 178 assertNull(region.getBorder()); 179 assertEquals(1, region.getBackground().getFills().size(), 0); 180 181 BackgroundFill fill = region.getBackground().getFills().get(0); 182 BackgroundFill expected = new BackgroundFill(Color.PURPLE, null, null); 183 assertEquals(expected, fill); 184 } 185 186 @Test public void insetsIsSpecifiedOnly() { 187 region.setStyle("-fx-background-insets: 1;"); 188 processCSS(); 189 190 assertNull(region.getBackground()); 191 assertNull(region.getBorder()); 192 } 193 194 @Test public void radiusIsSpecifiedOnly() { 195 region.setStyle("-fx-background-radius: 1;"); 196 processCSS(); 197 198 assertNull(region.getBackground()); 199 assertNull(region.getBorder()); 200 } 201 202 @Test public void testWithExcessInsets() { 203 region.setStyle( 204 "-fx-background-color: red;" + 205 "-fx-background-insets: 0 0 -1 0, 0, 1, 2;"); 206 processCSS(); 207 208 assertEquals(1, region.getBackground().getFills().size(), 0); 209 assertEquals(0, region.getBackground().getImages().size(), 0); 210 assertNull(region.getBorder()); 211 212 BackgroundFill fill = region.getBackground().getFills().get(0); 213 BackgroundFill expected = new BackgroundFill(Color.RED, null, new Insets(0, 0, -1, 0)); 214 assertEquals(expected, fill); 215 } 216 217 @Test public void testWithExcessRadius() { 218 region.setStyle( 219 "-fx-background-color: red;" + 220 "-fx-background-radius: 0 0 0 0, 0, 1, 2;"); 221 processCSS(); 222 223 assertEquals(1, region.getBackground().getFills().size(), 0); 224 assertEquals(0, region.getBackground().getImages().size(), 0); 225 assertNull(region.getBorder()); 226 227 BackgroundFill fill = region.getBackground().getFills().get(0); 228 BackgroundFill expected = new BackgroundFill(Color.RED, new CornerRadii(0), null); 229 assertEquals(expected, fill); 230 } 231 232 @Test public void backgroundScenario1() { 233 region.setStyle( 234 "-fx-background-color: red;" + 235 "-fx-background-insets: 0 0 -1 0, 0, 1, 2;" + 236 "-fx-background-radius: 1 2 3 4;" + 237 "-fx-padding: 10 20 30 40;"); 238 processCSS(); 239 240 assertEquals(new Insets(10, 20, 30, 40), region.getPadding()); 241 assertEquals(1, region.getBackground().getFills().size(), 0); 242 assertEquals(0, region.getBackground().getImages().size(), 0); 243 assertNull(region.getBorder()); 244 245 BackgroundFill fill = region.getBackground().getFills().get(0); 246 BackgroundFill expected = new BackgroundFill(Color.RED, new CornerRadii(1, 2, 3, 4, false), new Insets(0, 0, -1, 0)); 247 assertEquals(expected, fill); 248 } 249 250 @Test public void backgroundScenario2() { 251 region.setStyle( 252 "-fx-background-color: red, green, blue, yellow;" + 253 "-fx-background-insets: 0 0 -1 0, 1;" + 254 "-fx-background-radius: 1 2 3 4, 5, 6 7 8 9;" + 255 "-fx-padding: 10 20 30 40;"); 256 processCSS(); 257 258 assertEquals(new Insets(10, 20, 30, 40), region.getPadding()); 259 assertEquals(4, region.getBackground().getFills().size(), 0); 260 assertEquals(0, region.getBackground().getImages().size(), 0); 261 assertNull(region.getBorder()); 262 263 BackgroundFill fill = region.getBackground().getFills().get(0); 264 BackgroundFill expected = new BackgroundFill(Color.RED, new CornerRadii(1, 2, 3, 4, false), new Insets(0, 0, -1, 0)); 265 assertEquals(expected, fill); 266 267 fill = region.getBackground().getFills().get(1); 268 expected = new BackgroundFill(Color.GREEN, new CornerRadii(5), new Insets(1)); 269 assertEquals(expected, fill); 270 271 fill = region.getBackground().getFills().get(2); 272 expected = new BackgroundFill(Color.BLUE, new CornerRadii(6, 7, 8, 9, false), new Insets(1)); 273 assertEquals(expected, fill); 274 275 fill = region.getBackground().getFills().get(3); 276 expected = new BackgroundFill(Color.YELLOW, new CornerRadii(6, 7, 8, 9, false), new Insets(1)); 277 assertEquals(expected, fill); 278 } 279 280 @Test public void backgroundScenario3() { 281 region.setStyle( 282 "-fx-background-color: red, green, blue, yellow;" + 283 "-fx-background-insets: 0 0 -1 0, 0, 1, 2;" + 284 "-fx-background-radius: 1 2 3 4;" + 285 "-fx-padding: 10 20 30 40;"); 286 processCSS(); 287 288 assertEquals(new Insets(10, 20, 30, 40), region.getPadding()); 289 assertEquals(4, region.getBackground().getFills().size(), 0); 290 291 BackgroundFill fill = region.getBackground().getFills().get(0); 292 BackgroundFill expected = new BackgroundFill(Color.RED, new CornerRadii(1, 2, 3, 4, false), new Insets(0, 0, -1, 0)); 293 assertEquals(expected, fill); 294 295 fill = region.getBackground().getFills().get(1); 296 expected = new BackgroundFill(Color.GREEN, new CornerRadii(1, 2, 3, 4, false), new Insets(0)); 297 assertEquals(expected, fill); 298 299 fill = region.getBackground().getFills().get(2); 300 expected = new BackgroundFill(Color.BLUE, new CornerRadii(1, 2, 3, 4, false), new Insets(1)); 301 assertEquals(expected, fill); 302 303 fill = region.getBackground().getFills().get(3); 304 expected = new BackgroundFill(Color.YELLOW, new CornerRadii(1, 2, 3, 4, false), new Insets(2)); 305 assertEquals(expected, fill); 306 } 307 308 /** 309 * From the specification: http://www.w3.org/TR/css3-background/ 310 * This is "Example 1", except modified for multiple background fills 311 */ 312 @Test public void specExample1_ModifiedForBackgroundFill() { 313 region.setStyle( 314 "-fx-background-color: red, green, blue;" + 315 "-fx-background-insets: 1, 2, 3, 4;" + // An extra value here, which should be ignored 316 "-fx-background-radius: 1;"); 317 processCSS(); 318 319 assertEquals(3, region.getBackground().getFills().size()); 320 321 BackgroundFill fill = region.getBackground().getFills().get(0); 322 BackgroundFill expected = new BackgroundFill(Color.RED, new CornerRadii(1), new Insets(1)); 323 assertEquals(expected, fill); 324 325 fill = region.getBackground().getFills().get(1); 326 expected = new BackgroundFill(Color.GREEN, new CornerRadii(1), new Insets(2)); 327 assertEquals(expected, fill); 328 329 fill = region.getBackground().getFills().get(2); 330 expected = new BackgroundFill(Color.BLUE, new CornerRadii(1), new Insets(3)); 331 assertEquals(expected, fill); 332 } 333 334 // See example 23 in http://www.w3.org/TR/css3-background/#the-border-radius 335 @Test public void testBackgroundRadiusWithHorizontalAndVerticalRadii() { 336 337 region.setStyle("-fx-background-color: black; -fx-background-radius: 2px 1px 4px / 0.5px 3px;"); 338 processCSS(); 339 340 assertNull(region.getBorder()); 341 assertEquals(1, region.getBackground().getFills().size(), 0); 342 assertEquals(0, region.getBackground().getImages().size(), 0); 343 344 BackgroundFill fill = region.getBackground().getFills().get(0); 345 BackgroundFill expected = new BackgroundFill(Color.BLACK, 346 new CornerRadii(2, .5, 3, 1, 4, .5, 3, 1, false, false, false, false, false, false, false, false), 347 Insets.EMPTY); 348 349 assertEquals(expected, fill); 350 351 } 352 353 354 /************************************************************************** 355 * * 356 * Background Image tests * 357 * * 358 * These include -fx-background-image, -fx-background-repeat, * 359 * -fx-background-position, -fx-background-clip, -fx-background-origin, * 360 * and -fx-background-size. -fx-background-attachment does not yet exist * 361 * and is not supported. * 362 * * 363 *************************************************************************/ 364 365 366 /** 367 * From the specification: http://www.w3.org/TR/css3-background/. 368 * 369 * This is something of a comprehensive test, whereas most of the unit tests 370 * in this file are checking one specific aspect of the functionality tested 371 * herein. 372 */ 373 @Test public void specExample1() { 374 region.setStyle( 375 "-fx-background-image: url(javafx/scene/layout/red.png), url(javafx/scene/layout/green.png), url(javafx/scene/layout/blue.png);" + 376 "-fx-background-position: center center, 20% 80%, top left, bottom right;" + 377 // TODO re-enable once I know how to test for background-origin 378 //"-fx-background-origin: border-box, content-box;" + 379 "-fx-background-repeat: no-repeat;"); 380 processCSS(); 381 382 assertEquals(0, region.getBackground().getFills().size(), 0); 383 assertEquals(3, region.getBackground().getImages().size(), 0); 384 assertNull(region.getBorder()); 385 386 BackgroundImage image = region.getBackground().getImages().get(0); 387 BackgroundImage expected = new BackgroundImage(image.getImage(), 388 BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, 389 new BackgroundPosition(Side.LEFT, .5, true, Side.TOP, .5, true), 390 BackgroundSize.DEFAULT); 391 assertEquals(expected, image); 392 393 image = region.getBackground().getImages().get(1); 394 expected = new BackgroundImage(image.getImage(), 395 BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, 396 new BackgroundPosition(Side.LEFT, .2, true, Side.TOP, .8, true), 397 BackgroundSize.DEFAULT); 398 assertEquals(expected, image); 399 400 image = region.getBackground().getImages().get(2); 401 expected = new BackgroundImage(image.getImage(), 402 BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, 403 BackgroundPosition.DEFAULT, 404 BackgroundSize.DEFAULT); 405 assertEquals(expected, image); 406 } 407 408 @Test public void backgroundImageRepeat_repeatX() { 409 region.setStyle( 410 "-fx-background-image: url('javafx/scene/layout/red.png');" + 411 "-fx-background-repeat: repeat-x;"); 412 processCSS(); 413 414 assertEquals(0, region.getBackground().getFills().size(), 0); 415 assertEquals(1, region.getBackground().getImages().size(), 0); 416 assertNull(region.getBorder()); 417 418 BackgroundImage image = region.getBackground().getImages().get(0); 419 BackgroundImage expected = new BackgroundImage(image.getImage(), 420 BackgroundRepeat.REPEAT, BackgroundRepeat.NO_REPEAT, 421 BackgroundPosition.DEFAULT, 422 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 423 assertEquals(expected, image); 424 } 425 426 @Test public void backgroundImageRepeat_repeatY() { 427 region.setStyle( 428 "-fx-background-image: url('javafx/scene/layout/red.png');" + 429 "-fx-background-repeat: repeat-y;"); 430 processCSS(); 431 432 assertEquals(0, region.getBackground().getFills().size(), 0); 433 assertEquals(1, region.getBackground().getImages().size(), 0); 434 assertNull(region.getBorder()); 435 436 BackgroundImage image = region.getBackground().getImages().get(0); 437 BackgroundImage expected = new BackgroundImage(image.getImage(), 438 BackgroundRepeat.NO_REPEAT, BackgroundRepeat.REPEAT, 439 BackgroundPosition.DEFAULT, 440 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 441 assertEquals(expected, image); 442 } 443 444 @Test public void backgroundImageRepeat_repeat() { 445 region.setStyle( 446 "-fx-background-image: url('javafx/scene/layout/red.png');" + 447 "-fx-background-repeat: repeat;"); 448 processCSS(); 449 450 assertEquals(0, region.getBackground().getFills().size(), 0); 451 assertEquals(1, region.getBackground().getImages().size(), 0); 452 assertNull(region.getBorder()); 453 454 BackgroundImage image = region.getBackground().getImages().get(0); 455 BackgroundImage expected = new BackgroundImage(image.getImage(), 456 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 457 BackgroundPosition.DEFAULT, 458 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 459 assertEquals(expected, image); 460 } 461 462 @Test public void backgroundImageRepeat_space() { 463 region.setStyle( 464 "-fx-background-image: url('javafx/scene/layout/red.png');" + 465 "-fx-background-repeat: space;"); 466 processCSS(); 467 468 assertEquals(0, region.getBackground().getFills().size(), 0); 469 assertEquals(1, region.getBackground().getImages().size(), 0); 470 assertNull(region.getBorder()); 471 472 BackgroundImage image = region.getBackground().getImages().get(0); 473 BackgroundImage expected = new BackgroundImage(image.getImage(), 474 BackgroundRepeat.SPACE, BackgroundRepeat.SPACE, 475 BackgroundPosition.DEFAULT, 476 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 477 assertEquals(expected, image); 478 } 479 480 @Test public void backgroundImageRepeat_round() { 481 region.setStyle( 482 "-fx-background-image: url('javafx/scene/layout/red.png');" + 483 "-fx-background-repeat: round;"); 484 processCSS(); 485 486 assertEquals(0, region.getBackground().getFills().size(), 0); 487 assertEquals(1, region.getBackground().getImages().size(), 0); 488 assertNull(region.getBorder()); 489 490 BackgroundImage image = region.getBackground().getImages().get(0); 491 BackgroundImage expected = new BackgroundImage(image.getImage(), 492 BackgroundRepeat.ROUND, BackgroundRepeat.ROUND, 493 BackgroundPosition.DEFAULT, 494 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 495 assertEquals(expected, image); 496 } 497 498 @Test public void backgroundImageRepeat_noRepeat() { 499 region.setStyle( 500 "-fx-background-image: url('javafx/scene/layout/red.png');" + 501 "-fx-background-repeat: no-repeat;"); 502 processCSS(); 503 504 assertEquals(0, region.getBackground().getFills().size(), 0); 505 assertEquals(1, region.getBackground().getImages().size(), 0); 506 assertNull(region.getBorder()); 507 508 BackgroundImage image = region.getBackground().getImages().get(0); 509 BackgroundImage expected = new BackgroundImage(image.getImage(), 510 BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, 511 BackgroundPosition.DEFAULT, 512 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 513 assertEquals(expected, image); 514 } 515 516 @Test public void backgroundImageRepeat_repeat_space() { 517 region.setStyle( 518 "-fx-background-image: url('javafx/scene/layout/red.png');" + 519 "-fx-background-repeat: repeat space;"); 520 processCSS(); 521 522 assertEquals(0, region.getBackground().getFills().size(), 0); 523 assertEquals(1, region.getBackground().getImages().size(), 0); 524 assertNull(region.getBorder()); 525 526 BackgroundImage image = region.getBackground().getImages().get(0); 527 BackgroundImage expected = new BackgroundImage(image.getImage(), 528 BackgroundRepeat.REPEAT, BackgroundRepeat.SPACE, 529 BackgroundPosition.DEFAULT, 530 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 531 assertEquals(expected, image); 532 } 533 534 @Test public void backgroundImageRepeat_round_noRepeat() { 535 region.setStyle( 536 "-fx-background-image: url('javafx/scene/layout/red.png');" + 537 "-fx-background-repeat: round no-repeat;"); 538 processCSS(); 539 540 assertEquals(0, region.getBackground().getFills().size(), 0); 541 assertEquals(1, region.getBackground().getImages().size(), 0); 542 assertNull(region.getBorder()); 543 544 BackgroundImage image = region.getBackground().getImages().get(0); 545 BackgroundImage expected = new BackgroundImage(image.getImage(), 546 BackgroundRepeat.ROUND, BackgroundRepeat.NO_REPEAT, 547 BackgroundPosition.DEFAULT, 548 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 549 assertEquals(expected, image); 550 } 551 552 // try "center left" 553 // try "50% left" -- shouldn't work 554 // try 3 values... remaining one should be 0 555 // If only one value is specified, the second value is assumed to be ???center??? -- whatever this means... 556 @Test public void backgroundImagePosition_right_bottom() { 557 region.setStyle( 558 "-fx-background-image: url('javafx/scene/layout/red.png');" + 559 "-fx-background-position: right 20px bottom 10px;"); 560 processCSS(); 561 562 assertEquals(0, region.getBackground().getFills().size(), 0); 563 assertEquals(1, region.getBackground().getImages().size(), 0); 564 assertNull(region.getBorder()); 565 566 BackgroundImage image = region.getBackground().getImages().get(0); 567 BackgroundImage expected = new BackgroundImage(image.getImage(), 568 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 569 new BackgroundPosition(Side.RIGHT, 20, false, Side.BOTTOM, 10, false), 570 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 571 assertEquals(expected, image); 572 } 573 574 private static String dump(BackgroundImage image) { 575 StringBuilder b = new StringBuilder("BackgroundImage["); 576 b.append(NL + " image: " + image.getImage()); 577 b.append(NL + " position: " + dump(image.getPosition())); 578 b.append(NL + " repeat-x: " + image.getRepeatX()); 579 b.append(NL + " repeat-y: " + image.getRepeatY()); 580 b.append(NL + " size: " + dump(image.getSize())); 581 b.append(NL + "]"); 582 return b.toString(); 583 } 584 585 private static String dump(BackgroundSize size) { 586 StringBuilder b = new StringBuilder("BackgroundSize["); 587 b.append(NL + " width: " + size.getWidth()); 588 b.append(NL + " height: " + size.getHeight()); 589 b.append(NL + " widthAsPercentage: " + size.isHeightAsPercentage()); 590 b.append(NL + " heightAsPercentage: " + size.isWidthAsPercentage()); 591 b.append(NL + " contain: " + size.isContain()); 592 b.append(NL + " cover: " + size.isCover()); 593 b.append(NL + " ]"); 594 return b.toString(); 595 } 596 597 private static String dump(BackgroundPosition position) { 598 StringBuilder b = new StringBuilder("BackgroundPosition["); 599 b.append(NL + " hSide: " + position.getHorizontalSide()); 600 b.append(NL + " hPosition: " + position.getHorizontalPosition()); 601 b.append(NL + " hAsPercentage: " + position.isHorizontalAsPercentage()); 602 b.append(NL + " vSide: " + position.getVerticalSide()); 603 b.append(NL + " vPosition: " + position.getVerticalPosition()); 604 b.append(NL + " vAsPercentage: " + position.isVerticalAsPercentage()); 605 b.append(NL + " ]"); 606 return b.toString(); 607 } 608 609 @Test public void backgroundImagePosition_bottom_right() { 610 region.setStyle( 611 "-fx-background-image: url('javafx/scene/layout/red.png');" + 612 "-fx-background-position: bottom 10px right 20px;"); 613 processCSS(); 614 615 assertEquals(0, region.getBackground().getFills().size(), 0); 616 assertEquals(1, region.getBackground().getImages().size(), 0); 617 assertNull(region.getBorder()); 618 619 BackgroundImage image = region.getBackground().getImages().get(0); 620 BackgroundImage expected = new BackgroundImage(image.getImage(), 621 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 622 new BackgroundPosition(Side.RIGHT, 20, false, Side.BOTTOM, 10, false), 623 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 624 assertEquals(expected, image); 625 } 626 627 @Test public void backgroundImagePosition_top() { 628 region.setStyle( 629 "-fx-background-image: url('javafx/scene/layout/red.png');" + 630 "-fx-background-position: top;"); 631 processCSS(); 632 633 assertEquals(0, region.getBackground().getFills().size(), 0); 634 assertEquals(1, region.getBackground().getImages().size(), 0); 635 assertNull(region.getBorder()); 636 637 BackgroundImage image = region.getBackground().getImages().get(0); 638 BackgroundImage expected = new BackgroundImage(image.getImage(), 639 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 640 new BackgroundPosition(Side.LEFT, .5, true, Side.TOP, 0, true), 641 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 642 assertEquals(expected, image); 643 } 644 645 @Test public void backgroundImagePosition_left() { 646 region.setStyle( 647 "-fx-background-image: url('javafx/scene/layout/red.png');" + 648 "-fx-background-position: left;"); 649 processCSS(); 650 651 assertEquals(0, region.getBackground().getFills().size(), 0); 652 assertEquals(1, region.getBackground().getImages().size(), 0); 653 assertNull(region.getBorder()); 654 655 BackgroundImage image = region.getBackground().getImages().get(0); 656 BackgroundImage expected = new BackgroundImage(image.getImage(), 657 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 658 new BackgroundPosition(Side.LEFT, 0, true, Side.TOP, .5, true), 659 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 660 assertEquals(expected, image); 661 } 662 663 @Test public void backgroundImagePosition_center() { 664 region.setStyle( 665 "-fx-background-image: url('javafx/scene/layout/red.png');" + 666 "-fx-background-position: center;"); 667 processCSS(); 668 669 assertEquals(0, region.getBackground().getFills().size(), 0); 670 assertEquals(1, region.getBackground().getImages().size(), 0); 671 assertNull(region.getBorder()); 672 673 BackgroundImage image = region.getBackground().getImages().get(0); 674 BackgroundImage expected = new BackgroundImage(image.getImage(), 675 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 676 new BackgroundPosition(Side.LEFT, .5, true, Side.TOP, .5, true), 677 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 678 assertEquals(expected, image); 679 } 680 681 @Test public void backgroundImagePosition_right() { 682 region.setStyle( 683 "-fx-background-image: url('javafx/scene/layout/red.png');" + 684 "-fx-background-position: right;"); 685 processCSS(); 686 687 assertEquals(0, region.getBackground().getFills().size(), 0); 688 assertEquals(1, region.getBackground().getImages().size(), 0); 689 assertNull(region.getBorder()); 690 691 BackgroundImage image = region.getBackground().getImages().get(0); 692 BackgroundImage expected = new BackgroundImage(image.getImage(), 693 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 694 new BackgroundPosition(Side.LEFT, 1, true, Side.TOP, .5, true), 695 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 696 assertEquals(expected, image); 697 } 698 699 @Test public void backgroundImagePosition_bottom() { 700 region.setStyle( 701 "-fx-background-image: url('javafx/scene/layout/red.png');" + 702 "-fx-background-position: bottom;"); 703 processCSS(); 704 705 assertEquals(0, region.getBackground().getFills().size(), 0); 706 assertEquals(1, region.getBackground().getImages().size(), 0); 707 assertNull(region.getBorder()); 708 709 BackgroundImage image = region.getBackground().getImages().get(0); 710 BackgroundImage expected = new BackgroundImage(image.getImage(), 711 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 712 new BackgroundPosition(Side.LEFT, .5, true, Side.TOP, 1, true), 713 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 714 assertEquals(expected, image); 715 } 716 717 @Test public void backgroundImagePosition_center_top() { 718 region.setStyle( 719 "-fx-background-image: url('javafx/scene/layout/red.png');" + 720 "-fx-background-position: center top;"); 721 processCSS(); 722 723 assertEquals(0, region.getBackground().getFills().size(), 0); 724 assertEquals(1, region.getBackground().getImages().size(), 0); 725 assertNull(region.getBorder()); 726 727 BackgroundImage image = region.getBackground().getImages().get(0); 728 BackgroundImage expected = new BackgroundImage(image.getImage(), 729 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 730 new BackgroundPosition(Side.LEFT, .5, true, Side.TOP, 0, true), 731 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 732 assertEquals(expected, image); 733 } 734 735 @Test public void backgroundImagePosition_Example8_1() { 736 region.setStyle( 737 "-fx-background-image: url('javafx/scene/layout/red.png');" + 738 "-fx-background-position: left 10px top 15px;"); 739 processCSS(); 740 741 assertEquals(0, region.getBackground().getFills().size(), 0); 742 assertEquals(1, region.getBackground().getImages().size(), 0); 743 assertNull(region.getBorder()); 744 745 BackgroundImage image = region.getBackground().getImages().get(0); 746 BackgroundImage expected = new BackgroundImage(image.getImage(), 747 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 748 new BackgroundPosition(Side.LEFT, 10, false, Side.TOP, 15, false), 749 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 750 assertEquals(expected, image); 751 } 752 753 @Test public void backgroundImagePosition_Example8_2() { 754 region.setStyle( 755 "-fx-background-image: url('javafx/scene/layout/red.png');" + 756 "-fx-background-position: left top;"); 757 processCSS(); 758 759 assertEquals(0, region.getBackground().getFills().size(), 0); 760 assertEquals(1, region.getBackground().getImages().size(), 0); 761 assertNull(region.getBorder()); 762 763 BackgroundImage image = region.getBackground().getImages().get(0); 764 BackgroundImage expected = new BackgroundImage(image.getImage(), 765 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 766 BackgroundPosition.DEFAULT, 767 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 768 assertEquals(expected, image); 769 } 770 771 @Test public void backgroundImagePosition_Example8_3() { 772 region.setStyle( 773 "-fx-background-image: url('javafx/scene/layout/red.png');" + 774 "-fx-background-position: 10px 15px;"); 775 processCSS(); 776 777 assertEquals(0, region.getBackground().getFills().size(), 0); 778 assertEquals(1, region.getBackground().getImages().size(), 0); 779 assertNull(region.getBorder()); 780 781 BackgroundImage image = region.getBackground().getImages().get(0); 782 BackgroundImage expected = new BackgroundImage(image.getImage(), 783 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 784 new BackgroundPosition(Side.LEFT, 10, false, Side.TOP, 15, false), 785 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 786 assertEquals(expected, image); 787 } 788 789 @Test public void backgroundImagePosition_Example8_4() { 790 region.setStyle( 791 "-fx-background-image: url('javafx/scene/layout/red.png');" + 792 "-fx-background-position: left 15px;"); 793 processCSS(); 794 795 assertEquals(0, region.getBackground().getFills().size(), 0); 796 assertEquals(1, region.getBackground().getImages().size(), 0); 797 assertNull(region.getBorder()); 798 799 BackgroundImage image = region.getBackground().getImages().get(0); 800 BackgroundImage expected = new BackgroundImage(image.getImage(), 801 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 802 new BackgroundPosition(Side.LEFT, 0, true, Side.TOP, 15, false), 803 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 804 assertEquals(expected, image); 805 } 806 807 @Test public void backgroundImagePosition_Example8_5() { 808 region.setStyle( 809 "-fx-background-image: url('javafx/scene/layout/red.png');" + 810 "-fx-background-position: 10px top;"); 811 processCSS(); 812 813 assertEquals(0, region.getBackground().getFills().size(), 0); 814 assertEquals(1, region.getBackground().getImages().size(), 0); 815 assertNull(region.getBorder()); 816 817 BackgroundImage image = region.getBackground().getImages().get(0); 818 BackgroundImage expected = new BackgroundImage(image.getImage(), 819 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 820 new BackgroundPosition(Side.LEFT, 10, false, Side.TOP, 0, true), 821 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 822 assertEquals(expected, image); 823 } 824 825 @Test public void backgroundImagePosition_Example8_6() { 826 region.setStyle( 827 "-fx-background-image: url('javafx/scene/layout/red.png');" + 828 "-fx-background-position: left top 15px;"); 829 processCSS(); 830 831 assertEquals(0, region.getBackground().getFills().size(), 0); 832 assertEquals(1, region.getBackground().getImages().size(), 0); 833 assertNull(region.getBorder()); 834 835 BackgroundImage image = region.getBackground().getImages().get(0); 836 BackgroundImage expected = new BackgroundImage(image.getImage(), 837 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 838 new BackgroundPosition(Side.LEFT, 0, true, Side.TOP, 15, false), 839 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 840 assertEquals(expected, image); 841 } 842 843 @Test public void backgroundImagePosition_Example8_7() { 844 region.setStyle( 845 "-fx-background-image: url('javafx/scene/layout/red.png');" + 846 "-fx-background-position: left 10px top;"); 847 processCSS(); 848 849 assertEquals(0, region.getBackground().getFills().size(), 0); 850 assertEquals(1, region.getBackground().getImages().size(), 0); 851 assertNull(region.getBorder()); 852 853 BackgroundImage image = region.getBackground().getImages().get(0); 854 BackgroundImage expected = new BackgroundImage(image.getImage(), 855 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 856 new BackgroundPosition(Side.LEFT, 10, false, Side.TOP, 0, true), 857 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 858 assertEquals(expected, image); 859 } 860 861 @Test public void backgroundImagePosition_Example10_1() { 862 region.setStyle( 863 "-fx-background-image: url('javafx/scene/layout/red.png');" + 864 "-fx-background-position: right top;"); 865 processCSS(); 866 867 assertEquals(0, region.getBackground().getFills().size(), 0); 868 assertEquals(1, region.getBackground().getImages().size(), 0); 869 assertNull(region.getBorder()); 870 871 BackgroundImage image = region.getBackground().getImages().get(0); 872 BackgroundImage expected = new BackgroundImage(image.getImage(), 873 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 874 new BackgroundPosition(Side.LEFT, 1, true, Side.TOP, 0, true), 875 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 876 assertEquals(expected, image); 877 } 878 879 @Test public void backgroundImagePosition_Example10_2() { 880 region.setStyle( 881 "-fx-background-image: url('javafx/scene/layout/red.png');" + 882 "-fx-background-position: top center;"); 883 processCSS(); 884 885 assertEquals(0, region.getBackground().getFills().size(), 0); 886 assertEquals(1, region.getBackground().getImages().size(), 0); 887 assertNull(region.getBorder()); 888 889 BackgroundImage image = region.getBackground().getImages().get(0); 890 BackgroundImage expected = new BackgroundImage(image.getImage(), 891 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 892 new BackgroundPosition(Side.LEFT, .5, true, Side.TOP, 0, true), 893 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 894 assertEquals(expected, image); 895 } 896 897 @Test public void backgroundImagePosition_Example11() { 898 region.setStyle( 899 "-fx-background-image: url('javafx/scene/layout/red.png');" + 900 "-fx-background-position: 100% 100%;"); 901 processCSS(); 902 903 assertEquals(0, region.getBackground().getFills().size(), 0); 904 assertEquals(1, region.getBackground().getImages().size(), 0); 905 assertNull(region.getBorder()); 906 907 BackgroundImage image = region.getBackground().getImages().get(0); 908 BackgroundImage expected = new BackgroundImage(image.getImage(), 909 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 910 new BackgroundPosition(Side.LEFT, 1, true, Side.TOP, 1, true), 911 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 912 assertEquals(expected, image); 913 } 914 915 @Test public void backgroundImagePosition_75Percent() { 916 region.setStyle( 917 "-fx-background-image: url('javafx/scene/layout/red.png');" + 918 "-fx-background-position: 75% 75%;"); 919 processCSS(); 920 921 assertEquals(0, region.getBackground().getFills().size(), 0); 922 assertEquals(1, region.getBackground().getImages().size(), 0); 923 assertNull(region.getBorder()); 924 925 BackgroundImage image = region.getBackground().getImages().get(0); 926 BackgroundImage expected = new BackgroundImage(image.getImage(), 927 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 928 new BackgroundPosition(Side.LEFT, .75, true, Side.TOP, .75, true), 929 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 930 assertEquals(expected, image); 931 } 932 933 @Test public void backgroundImagePosition_Example12() { 934 region.setStyle( 935 "-fx-background-image: url('javafx/scene/layout/red.png');" + 936 "-fx-background-position: right 10% bottom 10%;"); 937 processCSS(); 938 939 assertEquals(0, region.getBackground().getFills().size(), 0); 940 assertEquals(1, region.getBackground().getImages().size(), 0); 941 assertNull(region.getBorder()); 942 943 BackgroundImage image = region.getBackground().getImages().get(0); 944 BackgroundImage expected = new BackgroundImage(image.getImage(), 945 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 946 new BackgroundPosition(Side.RIGHT, .1, true, Side.BOTTOM, .1, true), 947 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 948 assertEquals(expected, image); 949 } 950 951 @Ignore("We do not presently implement -fx-background-clip") 952 @Test public void backgroundClip_defaultValue() { 953 region.setStyle( 954 "-fx-background-image: url('javafx/scene/layout/red.png');"); 955 processCSS(); 956 957 assertEquals(0, region.getBackground().getFills().size(), 0); 958 assertEquals(1, region.getBackground().getImages().size(), 0); 959 assertNull(region.getBorder()); 960 961 // BackgroundImage image = region.getBackground().getImages().get(0); 962 // TODO backgroundClip needs to be set to border-box by default 963 // BackgroundImage expected = new BackgroundImage(image.getImage(), BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, 964 // 0, .1, .1, 0, // top, right, bottom, left 965 // 1, 1, 966 // true, true, // asHorizontalPercentage, asVerticalPercentage 967 // true, true, 968 // false, false); 969 // assertEquals(expected, image); 970 } 971 972 @Ignore("We do not presently implement -fx-background-clip") 973 @Test public void backgroundClip_BorderBox() { 974 region.setStyle( 975 "-fx-background-image: url('javafx/scene/layout/red.png');" + 976 "-fx-background-clip: border-box"); 977 processCSS(); 978 979 assertEquals(0, region.getBackground().getFills().size(), 0); 980 assertEquals(1, region.getBackground().getImages().size(), 0); 981 assertNull(region.getBorder()); 982 983 // BackgroundImage image = region.getBackground().getImages().get(0); 984 // BackgroundImage expected = new BackgroundImage(image.getImage(), BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, 985 // 0, .1, .1, 0, // top, right, bottom, left 986 // 1, 1, 987 // true, true, // asHorizontalPercentage, asVerticalPercentage 988 // true, true, 989 // false, false); 990 // assertEquals(expected, image); 991 } 992 993 @Ignore("We do not presently implement -fx-background-clip") 994 @Test public void backgroundClip_PaddingBox() { 995 region.setStyle( 996 "-fx-background-image: url('javafx/scene/layout/red.png');" + 997 "-fx-background-clip: padding-box"); 998 processCSS(); 999 1000 assertEquals(0, region.getBackground().getFills().size(), 0); 1001 assertEquals(1, region.getBackground().getImages().size(), 0); 1002 assertNull(region.getBorder()); 1003 1004 // BackgroundImage image = region.getBackground().getImages().get(0); 1005 // BackgroundImage expected = new BackgroundImage(image.getImage(), BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, 1006 // 0, .1, .1, 0, // top, right, bottom, left 1007 // 1, 1, 1008 // true, true, // asHorizontalPercentage, asVerticalPercentage 1009 // true, true, 1010 // false, false); 1011 // assertEquals(expected, image); 1012 } 1013 1014 @Ignore("We do not presently implement -fx-background-clip") 1015 @Test public void backgroundClip_ContentBox() { 1016 region.setStyle( 1017 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1018 "-fx-background-clip: content-box"); 1019 processCSS(); 1020 1021 assertEquals(0, region.getBackground().getFills().size(), 0); 1022 assertEquals(1, region.getBackground().getImages().size(), 0); 1023 assertNull(region.getBorder()); 1024 1025 // BackgroundImage image = region.getBackground().getImages().get(0); 1026 // BackgroundImage expected = new BackgroundImage(image.getImage(), BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, 1027 // 0, .1, .1, 0, // top, right, bottom, left 1028 // 1, 1, 1029 // true, true, // asHorizontalPercentage, asVerticalPercentage 1030 // true, true, 1031 // false, false); 1032 // assertEquals(expected, image); 1033 } 1034 1035 @Ignore("We do not presently implement -fx-background-origin") 1036 @Test public void backgroundOrigin_defaultValue() { 1037 region.setStyle( 1038 "-fx-background-image: url('javafx/scene/layout/red.png');"); 1039 processCSS(); 1040 1041 assertEquals(0, region.getBackground().getFills().size(), 0); 1042 assertEquals(1, region.getBackground().getImages().size(), 0); 1043 assertNull(region.getBorder()); 1044 1045 // BackgroundImage image = region.getBackground().getImages().get(0); 1046 // TODO backgroundOrigin needs to be set to padding-box by default 1047 // BackgroundImage expected = new BackgroundImage(image.getImage(), BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, 1048 // 0, .1, .1, 0, // top, right, bottom, left 1049 // 1, 1, 1050 // true, true, // asHorizontalPercentage, asVerticalPercentage 1051 // true, true, 1052 // false, false); 1053 // assertEquals(expected, image); 1054 } 1055 1056 @Ignore("We do not presently implement -fx-background-origin") 1057 @Test public void backgroundOrigin_BorderBox() { 1058 region.setStyle( 1059 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1060 "-fx-background-origin: border-box"); 1061 processCSS(); 1062 1063 // assertEquals(0, region.getBackground().getFills().size(), 0); 1064 // assertEquals(1, region.getBackground().getImages().size(), 0); 1065 // assertEquals(0, region.getImageBorders().size(), 0); 1066 // assertEquals(0, region.getStrokeBorders().size(), 0); 1067 1068 // BackgroundImage image = region.getBackground().getImages().get(0); 1069 // BackgroundImage expected = new BackgroundImage(image.getImage(), BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, 1070 // 0, .1, .1, 0, // top, right, bottom, left 1071 // 1, 1, 1072 // true, true, // asHorizontalPercentage, asVerticalPercentage 1073 // true, true, 1074 // false, false); 1075 // assertEquals(expected, image); 1076 } 1077 1078 @Ignore("We do not presently implement -fx-background-origin") 1079 @Test public void backgroundOrigin_PaddingBox() { 1080 region.setStyle( 1081 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1082 "-fx-background-origin: padding-box"); 1083 processCSS(); 1084 1085 assertEquals(0, region.getBackground().getFills().size(), 0); 1086 assertEquals(1, region.getBackground().getImages().size(), 0); 1087 assertNull(region.getBorder()); 1088 1089 // BackgroundImage image = region.getBackground().getImages().get(0); 1090 // BackgroundImage expected = new BackgroundImage(image.getImage(), BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, 1091 // 0, .1, .1, 0, // top, right, bottom, left 1092 // 1, 1, 1093 // true, true, // asHorizontalPercentage, asVerticalPercentage 1094 // true, true, 1095 // false, false); 1096 // assertEquals(expected, image); 1097 } 1098 1099 @Ignore("We do not presently implement -fx-background-origin") 1100 @Test public void backgroundOrigin_ContentBox() { 1101 region.setStyle( 1102 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1103 "-fx-background-origin: content-box"); 1104 processCSS(); 1105 1106 assertEquals(0, region.getBackground().getFills().size(), 0); 1107 assertEquals(1, region.getBackground().getImages().size(), 0); 1108 assertNull(region.getBorder()); 1109 1110 // BackgroundImage image = region.getBackground().getImages().get(0); 1111 // BackgroundImage expected = new BackgroundImage(image.getImage(), BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, 1112 // 0, .1, .1, 0, // top, right, bottom, left 1113 // 1, 1, 1114 // true, true, // asHorizontalPercentage, asVerticalPercentage 1115 // true, true, 1116 // false, false); 1117 // assertEquals(expected, image); 1118 } 1119 1120 @Test public void backgroundSize_defaultValue() { 1121 region.setStyle("-fx-background-image: url('javafx/scene/layout/red.png');"); 1122 processCSS(); 1123 1124 assertEquals(0, region.getBackground().getFills().size(), 0); 1125 assertEquals(1, region.getBackground().getImages().size(), 0); 1126 assertNull(region.getBorder()); 1127 1128 BackgroundImage image = region.getBackground().getImages().get(0); 1129 BackgroundImage expected = new BackgroundImage(image.getImage(), 1130 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1131 BackgroundPosition.DEFAULT, 1132 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 1133 assertEquals(expected, image); 1134 } 1135 1136 @Test public void backgroundSize_cover() { 1137 region.setStyle( 1138 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1139 "-fx-background-size: cover;"); 1140 processCSS(); 1141 1142 assertEquals(0, region.getBackground().getFills().size(), 0); 1143 assertEquals(1, region.getBackground().getImages().size(), 0); 1144 assertNull(region.getBorder()); 1145 1146 BackgroundImage image = region.getBackground().getImages().get(0); 1147 BackgroundImage expected = new BackgroundImage(image.getImage(), 1148 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1149 BackgroundPosition.DEFAULT, 1150 new BackgroundSize(AUTO, AUTO, true, true, false, true)); 1151 assertEquals(expected, image); 1152 } 1153 1154 @Test public void backgroundSize_contain() { 1155 region.setStyle( 1156 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1157 "-fx-background-size: contain;"); 1158 processCSS(); 1159 1160 assertEquals(0, region.getBackground().getFills().size(), 0); 1161 assertEquals(1, region.getBackground().getImages().size(), 0); 1162 assertNull(region.getBorder()); 1163 1164 BackgroundImage image = region.getBackground().getImages().get(0); 1165 BackgroundImage expected = new BackgroundImage(image.getImage(), 1166 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1167 BackgroundPosition.DEFAULT, 1168 new BackgroundSize(AUTO, AUTO, true, true, true, false)); 1169 assertEquals(expected, image); 1170 } 1171 1172 @Test public void backgroundSize_length() { 1173 region.setStyle( 1174 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1175 "-fx-background-size: 170px;"); 1176 processCSS(); 1177 1178 assertEquals(0, region.getBackground().getFills().size(), 0); 1179 assertEquals(1, region.getBackground().getImages().size(), 0); 1180 assertNull(region.getBorder()); 1181 1182 BackgroundImage image = region.getBackground().getImages().get(0); 1183 BackgroundImage expected = new BackgroundImage(image.getImage(), 1184 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1185 BackgroundPosition.DEFAULT, 1186 new BackgroundSize(170, AUTO, false, true, false, false)); 1187 assertEquals(expected, image); 1188 } 1189 1190 @Test public void backgroundSize_percent() { 1191 region.setStyle( 1192 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1193 "-fx-background-size: 65%;"); 1194 processCSS(); 1195 1196 assertEquals(0, region.getBackground().getFills().size(), 0); 1197 assertEquals(1, region.getBackground().getImages().size(), 0); 1198 assertNull(region.getBorder()); 1199 1200 BackgroundImage image = region.getBackground().getImages().get(0); 1201 BackgroundImage expected = new BackgroundImage(image.getImage(), 1202 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1203 BackgroundPosition.DEFAULT, 1204 new BackgroundSize(.65, AUTO, true, true, false, false)); 1205 assertEquals(expected, image); 1206 } 1207 1208 @Test public void backgroundSize_auto() { 1209 region.setStyle( 1210 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1211 "-fx-background-size: auto;"); 1212 processCSS(); 1213 1214 assertEquals(0, region.getBackground().getFills().size(), 0); 1215 assertEquals(1, region.getBackground().getImages().size(), 0); 1216 assertNull(region.getBorder()); 1217 1218 BackgroundImage image = region.getBackground().getImages().get(0); 1219 BackgroundImage expected = new BackgroundImage(image.getImage(), 1220 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1221 BackgroundPosition.DEFAULT, 1222 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 1223 assertEquals(expected, image); 1224 } 1225 1226 @Test public void backgroundSize_length_length() { 1227 region.setStyle( 1228 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1229 "-fx-background-size: 10px 20px;"); 1230 processCSS(); 1231 1232 assertEquals(0, region.getBackground().getFills().size(), 0); 1233 assertEquals(1, region.getBackground().getImages().size(), 0); 1234 assertNull(region.getBorder()); 1235 1236 BackgroundImage image = region.getBackground().getImages().get(0); 1237 BackgroundImage expected = new BackgroundImage(image.getImage(), 1238 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1239 BackgroundPosition.DEFAULT, 1240 new BackgroundSize(10, 20, false, false, false, false)); 1241 assertEquals(expected, image); 1242 } 1243 1244 @Test public void backgroundSize_length_percent() { 1245 region.setStyle( 1246 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1247 "-fx-background-size: 50px 25%;"); 1248 processCSS(); 1249 1250 assertEquals(0, region.getBackground().getFills().size(), 0); 1251 assertEquals(1, region.getBackground().getImages().size(), 0); 1252 assertNull(region.getBorder()); 1253 1254 BackgroundImage image = region.getBackground().getImages().get(0); 1255 BackgroundImage expected = new BackgroundImage(image.getImage(), 1256 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1257 BackgroundPosition.DEFAULT, 1258 new BackgroundSize(50, .25, false, true, false, false)); 1259 assertEquals(expected, image); 1260 } 1261 1262 @Test public void backgroundSize_length_auto() { 1263 region.setStyle( 1264 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1265 "-fx-background-size: 40px auto;"); 1266 processCSS(); 1267 1268 assertEquals(0, region.getBackground().getFills().size(), 0); 1269 assertEquals(1, region.getBackground().getImages().size(), 0); 1270 assertNull(region.getBorder()); 1271 1272 BackgroundImage image = region.getBackground().getImages().get(0); 1273 BackgroundImage expected = new BackgroundImage(image.getImage(), 1274 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1275 BackgroundPosition.DEFAULT, 1276 new BackgroundSize(40, AUTO, false, true, false, false)); 1277 assertEquals(expected, image); 1278 } 1279 1280 @Test public void backgroundSize_percent_length() { 1281 region.setStyle( 1282 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1283 "-fx-background-size: 25% 30px;"); 1284 processCSS(); 1285 1286 assertEquals(0, region.getBackground().getFills().size(), 0); 1287 assertEquals(1, region.getBackground().getImages().size(), 0); 1288 assertNull(region.getBorder()); 1289 1290 BackgroundImage image = region.getBackground().getImages().get(0); 1291 BackgroundImage expected = new BackgroundImage(image.getImage(), 1292 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1293 BackgroundPosition.DEFAULT, 1294 new BackgroundSize(.25, 30, true, false, false, false)); 1295 assertEquals(expected, image); 1296 } 1297 1298 @Test public void backgroundSize_percent_percent() { 1299 region.setStyle( 1300 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1301 "-fx-background-size: 25% 75%;"); 1302 processCSS(); 1303 1304 assertEquals(0, region.getBackground().getFills().size(), 0); 1305 assertEquals(1, region.getBackground().getImages().size(), 0); 1306 assertNull(region.getBorder()); 1307 1308 BackgroundImage image = region.getBackground().getImages().get(0); 1309 BackgroundImage expected = new BackgroundImage(image.getImage(), 1310 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1311 BackgroundPosition.DEFAULT, 1312 new BackgroundSize(.25, .75, true, true, false, false)); 1313 assertEquals(expected, image); 1314 } 1315 1316 @Test public void backgroundSize_percent_auto() { 1317 region.setStyle( 1318 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1319 "-fx-background-size: 25% auto;"); 1320 processCSS(); 1321 1322 assertEquals(0, region.getBackground().getFills().size(), 0); 1323 assertEquals(1, region.getBackground().getImages().size(), 0); 1324 assertNull(region.getBorder()); 1325 1326 BackgroundImage image = region.getBackground().getImages().get(0); 1327 BackgroundImage expected = new BackgroundImage(image.getImage(), 1328 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1329 BackgroundPosition.DEFAULT, 1330 new BackgroundSize(.25, AUTO, true, true, false, false)); 1331 assertEquals(expected, image); 1332 } 1333 1334 @Test public void backgroundSize_auto_length() { 1335 region.setStyle( 1336 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1337 "-fx-background-size: auto 25px;"); 1338 processCSS(); 1339 1340 assertEquals(0, region.getBackground().getFills().size(), 0); 1341 assertEquals(1, region.getBackground().getImages().size(), 0); 1342 assertNull(region.getBorder()); 1343 1344 BackgroundImage image = region.getBackground().getImages().get(0); 1345 BackgroundImage expected = new BackgroundImage(image.getImage(), 1346 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1347 BackgroundPosition.DEFAULT, 1348 new BackgroundSize(AUTO, 25, true, false, false, false)); 1349 assertEquals(expected, image); 1350 } 1351 1352 @Test public void backgroundSize_auto_percent() { 1353 region.setStyle( 1354 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1355 "-fx-background-size: auto 50%;"); 1356 processCSS(); 1357 1358 assertEquals(0, region.getBackground().getFills().size(), 0); 1359 assertEquals(1, region.getBackground().getImages().size(), 0); 1360 assertNull(region.getBorder()); 1361 1362 BackgroundImage image = region.getBackground().getImages().get(0); 1363 BackgroundImage expected = new BackgroundImage(image.getImage(), 1364 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1365 BackgroundPosition.DEFAULT, 1366 new BackgroundSize(AUTO, .5, true, true, false, false)); 1367 assertEquals(expected, image); 1368 } 1369 1370 @Test public void backgroundSize_auto_auto() { 1371 region.setStyle( 1372 "-fx-background-image: url('javafx/scene/layout/red.png');" + 1373 "-fx-background-size: auto auto;"); 1374 processCSS(); 1375 1376 assertEquals(0, region.getBackground().getFills().size(), 0); 1377 assertEquals(1, region.getBackground().getImages().size(), 0); 1378 assertNull(region.getBorder()); 1379 1380 BackgroundImage image = region.getBackground().getImages().get(0); 1381 BackgroundImage expected = new BackgroundImage(image.getImage(), 1382 BackgroundRepeat.REPEAT, BackgroundRepeat.REPEAT, 1383 BackgroundPosition.DEFAULT, 1384 new BackgroundSize(AUTO, AUTO, true, true, false, false)); 1385 assertEquals(expected, image); 1386 } 1387 1388 1389 /************************************************************************** 1390 * * 1391 * Stroke Border tests * 1392 * * 1393 * These include -fx-border-color, -fx-border-style, and * 1394 * -fx-border-width properties. * 1395 * * 1396 *************************************************************************/ 1397 1398 @Test public void borderStrokeStyleIsNull() { 1399 region.setStyle("-fx-border-style: null;"); 1400 processCSS(); 1401 1402 assertEquals(new Insets(0), region.getPadding()); 1403 assertNull(region.getBackground()); 1404 assertNull(region.getBorder()); 1405 } 1406 1407 @Ignore("-fx-border-style-top is not supported") 1408 @Test public void borderStyle_top() { 1409 region.setStyle("-fx-border-style-top: solid;"); 1410 processCSS(); 1411 1412 assertEquals(0, region.getBackground().getFills().size(), 0); 1413 assertEquals(0, region.getBackground().getImages().size(), 0); 1414 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1415 assertEquals(0, region.getBorder().getImages().size(), 0); 1416 1417 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1418 BorderStroke expected = new BorderStroke( 1419 Color.BLACK, Color.BLACK, Color.BLACK, Color.BLACK, 1420 BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, 1421 null, null, Insets.EMPTY); 1422 assertEquals(expected, stroke); 1423 } 1424 1425 @Ignore("-fx-border-style-right is not supported") 1426 @Test public void borderStyle_right() { 1427 region.setStyle("-fx-border-style-right: solid;"); 1428 processCSS(); 1429 1430 assertEquals(0, region.getBackground().getFills().size(), 0); 1431 assertEquals(0, region.getBackground().getImages().size(), 0); 1432 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1433 assertEquals(0, region.getBorder().getImages().size(), 0); 1434 1435 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1436 BorderStroke expected = new BorderStroke( 1437 Color.BLACK, Color.BLACK, Color.BLACK, Color.BLACK, 1438 BorderStrokeStyle.NONE, BorderStrokeStyle.SOLID, BorderStrokeStyle.NONE, BorderStrokeStyle.SOLID, 1439 null, null, Insets.EMPTY); 1440 assertEquals(expected, stroke); 1441 } 1442 1443 @Ignore("-fx-border-style-bottom is not supported") 1444 @Test public void borderStyle_bottom() { 1445 region.setStyle("-fx-border-style-bottom: solid;"); 1446 processCSS(); 1447 1448 assertEquals(0, region.getBackground().getFills().size(), 0); 1449 assertEquals(0, region.getBackground().getImages().size(), 0); 1450 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1451 assertEquals(0, region.getBorder().getImages().size(), 0); 1452 1453 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1454 BorderStroke expected = new BorderStroke( 1455 Color.BLACK, Color.BLACK, Color.BLACK, Color.BLACK, 1456 BorderStrokeStyle.NONE, BorderStrokeStyle.NONE, BorderStrokeStyle.SOLID, BorderStrokeStyle.NONE, 1457 null, null, Insets.EMPTY); 1458 assertEquals(expected, stroke); 1459 } 1460 1461 @Ignore("-fx-border-style-left is not supported") 1462 @Test public void borderStyle_left() { 1463 region.setStyle("-fx-border-style-left: solid;"); 1464 processCSS(); 1465 1466 assertEquals(0, region.getBackground().getFills().size(), 0); 1467 assertEquals(0, region.getBackground().getImages().size(), 0); 1468 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1469 assertEquals(0, region.getBorder().getImages().size(), 0); 1470 1471 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1472 BorderStroke expected = new BorderStroke( 1473 Color.BLACK, Color.BLACK, Color.BLACK, Color.BLACK, 1474 BorderStrokeStyle.NONE, BorderStrokeStyle.NONE, BorderStrokeStyle.NONE, BorderStrokeStyle.SOLID, 1475 null, null, Insets.EMPTY); 1476 assertEquals(expected, stroke); 1477 } 1478 1479 @Ignore("-fx-border-style-top and -fx-border-style-right are not supported") 1480 @Test public void borderStyle_top_right() { 1481 region.setStyle( 1482 "-fx-border-style-top: solid;" + 1483 "-fx-border-style-right: dashed;"); 1484 processCSS(); 1485 1486 assertEquals(0, region.getBackground().getFills().size(), 0); 1487 assertEquals(0, region.getBackground().getImages().size(), 0); 1488 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1489 assertEquals(0, region.getBorder().getImages().size(), 0); 1490 1491 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1492 BorderStroke expected = new BorderStroke( 1493 Color.BLACK, Color.BLACK, Color.BLACK, Color.BLACK, 1494 BorderStrokeStyle.SOLID, BorderStrokeStyle.DASHED, BorderStrokeStyle.SOLID, BorderStrokeStyle.DASHED, 1495 null, null, Insets.EMPTY); 1496 assertEquals(expected, stroke); 1497 } 1498 1499 @Ignore("-fx-border-style-top and -fx-border-style-bottom are not supported") 1500 @Test public void borderStyle_bottom_top() { 1501 region.setStyle( 1502 "-fx-border-style-top: solid;" + 1503 "-fx-border-style-bottom: dashed;"); 1504 processCSS(); 1505 1506 assertEquals(0, region.getBackground().getFills().size(), 0); 1507 assertEquals(0, region.getBackground().getImages().size(), 0); 1508 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1509 assertEquals(0, region.getBorder().getImages().size(), 0); 1510 1511 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1512 BorderStroke expected = new BorderStroke( 1513 Color.BLACK, Color.BLACK, Color.BLACK, Color.BLACK, 1514 BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.DASHED, BorderStrokeStyle.SOLID, 1515 null, null, Insets.EMPTY); 1516 assertEquals(expected, stroke); 1517 } 1518 1519 @Ignore("-fx-border-style-bottom and -fx-border-style-left are not supported") 1520 @Test public void borderStyle_left_bottom() { 1521 region.setStyle( 1522 "-fx-border-style-bottom: solid;" + 1523 "-fx-border-style-left: dashed;"); 1524 processCSS(); 1525 1526 assertEquals(0, region.getBackground().getFills().size(), 0); 1527 assertEquals(0, region.getBackground().getImages().size(), 0); 1528 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1529 assertEquals(0, region.getBorder().getImages().size(), 0); 1530 1531 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1532 BorderStroke expected = new BorderStroke( 1533 Color.BLACK, Color.BLACK, Color.BLACK, Color.BLACK, 1534 BorderStrokeStyle.NONE, BorderStrokeStyle.NONE, BorderStrokeStyle.SOLID, BorderStrokeStyle.DASHED, 1535 null, null, Insets.EMPTY); 1536 assertEquals(expected, stroke); 1537 } 1538 1539 @Test public void borderStyle_none() { 1540 region.setStyle("-fx-border-style: none;"); 1541 processCSS(); 1542 1543 assertEquals(new Insets(0), region.getPadding()); 1544 assertNull(region.getBackground()); 1545 assertNull(region.getBorder()); 1546 } 1547 1548 @Test public void borderStyle_hidden() { 1549 region.setStyle("-fx-border-style: hidden;"); 1550 processCSS(); 1551 1552 assertEquals(new Insets(0), region.getPadding()); 1553 assertNull(region.getBackground()); 1554 assertNull(region.getBorder()); 1555 } 1556 1557 @Test public void borderStyle_dotted() { 1558 region.setStyle("-fx-border-color: black; -fx-border-style: dotted;"); 1559 processCSS(); 1560 1561 assertNull(region.getBackground()); 1562 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1563 assertEquals(0, region.getBorder().getImages().size(), 0); 1564 1565 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1566 BorderStroke expected = new BorderStroke( 1567 Color.BLACK, BorderStrokeStyle.DOTTED, 1568 null, null); 1569 assertEquals(expected, stroke); 1570 } 1571 1572 // border-style: dashed 1573 @Test public void borderStyle_dashed() { 1574 region.setStyle("-fx-border-color: black; -fx-border-style: dashed;"); 1575 processCSS(); 1576 1577 assertNull(region.getBackground()); 1578 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1579 assertEquals(0, region.getBorder().getImages().size(), 0); 1580 1581 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1582 BorderStroke expected = new BorderStroke( 1583 Color.BLACK, BorderStrokeStyle.DASHED, 1584 null, null); 1585 assertEquals(expected, stroke); 1586 } 1587 1588 @Test public void borderStyle_solid() { 1589 region.setStyle("-fx-border-color: black; -fx-border-style: solid;"); 1590 processCSS(); 1591 1592 assertNull(region.getBackground()); 1593 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1594 assertEquals(0, region.getBorder().getImages().size(), 0); 1595 1596 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1597 BorderStroke expected = new BorderStroke( 1598 Color.BLACK, BorderStrokeStyle.SOLID, 1599 null, null); 1600 assertEquals(expected, stroke); 1601 } 1602 1603 @Ignore ("double not supported yet") 1604 @Test public void borderStyle_double() { 1605 region.setStyle("-fx-border-color: black; -fx-border-style: double;"); 1606 processCSS(); 1607 1608 assertEquals(0, region.getBackground().getFills().size(), 0); 1609 assertEquals(0, region.getBackground().getImages().size(), 0); 1610 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1611 assertEquals(0, region.getBorder().getImages().size(), 0); 1612 1613 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1614 // BorderStroke expected = new BorderStroke( 1615 // Color.BLACK, BorderStrokeStyle.DOUBLE, 1616 // null, null); 1617 // assertEquals(expected, stroke); 1618 } 1619 1620 @Ignore ("groove not supported yet") 1621 @Test public void borderStyle_groove() { 1622 region.setStyle("-fx-border-color: black; -fx-border-style: groove;"); 1623 processCSS(); 1624 1625 assertEquals(0, region.getBackground().getFills().size(), 0); 1626 assertEquals(0, region.getBackground().getImages().size(), 0); 1627 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1628 assertEquals(0, region.getBorder().getImages().size(), 0); 1629 1630 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1631 // BorderStroke expected = new BorderStroke( 1632 // Color.BLACK, BorderStrokeStyle.GROOVE, 1633 // null, null); 1634 // assertEquals(expected, stroke); 1635 } 1636 1637 @Ignore ("ridge not supported yet") 1638 @Test public void borderStyle_ridge() { 1639 region.setStyle("-fx-border-color: black; -fx-border-style: ridge;"); 1640 processCSS(); 1641 1642 assertEquals(0, region.getBackground().getFills().size(), 0); 1643 assertEquals(0, region.getBackground().getImages().size(), 0); 1644 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1645 assertEquals(0, region.getBorder().getImages().size(), 0); 1646 1647 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1648 // BorderStroke expected = new BorderStroke( 1649 // Color.BLACK, BorderStrokeStyle.RIDGE, 1650 // null, null); 1651 // assertEquals(expected, stroke); 1652 } 1653 1654 @Ignore ("inset not supported yet") 1655 @Test public void borderStyle_inset() { 1656 region.setStyle("-fx-border-color: black; -fx-border-style: inset;"); 1657 processCSS(); 1658 1659 assertEquals(0, region.getBackground().getFills().size(), 0); 1660 assertEquals(0, region.getBackground().getImages().size(), 0); 1661 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1662 assertEquals(0, region.getBorder().getImages().size(), 0); 1663 1664 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1665 // BorderStroke expected = new BorderStroke( 1666 // Color.BLACK, BorderStrokeStyle.INSET, 1667 // null, null); 1668 // assertEquals(expected, stroke); 1669 } 1670 1671 @Ignore ("outset not supported yet") 1672 @Test public void borderStyle_outset() { 1673 region.setStyle("-fx-border-color: black; -fx-border-style: outset;"); 1674 processCSS(); 1675 1676 assertEquals(0, region.getBackground().getFills().size(), 0); 1677 assertEquals(0, region.getBackground().getImages().size(), 0); 1678 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1679 assertEquals(0, region.getBorder().getImages().size(), 0); 1680 1681 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1682 // BorderStroke expected = new BorderStroke( 1683 // Color.BLACK, BorderStrokeStyle.OUTSET, 1684 // null, null); 1685 // assertEquals(expected, stroke); 1686 } 1687 1688 @Test public void borderStyle_solid_dotted() { 1689 region.setStyle("-fx-border-color: black; -fx-border-style: solid dotted;"); 1690 processCSS(); 1691 1692 assertNull(region.getBackground()); 1693 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1694 assertEquals(0, region.getBorder().getImages().size(), 0); 1695 1696 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1697 BorderStroke expected = new BorderStroke( 1698 Color.BLACK, Color.BLACK, Color.BLACK, Color.BLACK, 1699 BorderStrokeStyle.SOLID, BorderStrokeStyle.DOTTED, BorderStrokeStyle.SOLID, BorderStrokeStyle.DOTTED, 1700 null, null, Insets.EMPTY); 1701 assertEquals(expected, stroke); 1702 } 1703 1704 @Test public void borderStyle_solid_dotted_dashed() { 1705 region.setStyle("-fx-border-color: black; -fx-border-style: solid dotted dashed;"); 1706 processCSS(); 1707 1708 assertNull(region.getBackground()); 1709 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1710 assertEquals(0, region.getBorder().getImages().size(), 0); 1711 1712 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1713 BorderStroke expected = new BorderStroke( 1714 Color.BLACK, Color.BLACK, Color.BLACK, Color.BLACK, 1715 BorderStrokeStyle.SOLID, BorderStrokeStyle.DOTTED, BorderStrokeStyle.DASHED, BorderStrokeStyle.DOTTED, 1716 null, null, Insets.EMPTY); 1717 assertEquals(expected, stroke); 1718 } 1719 1720 @Ignore ("ridge not supported yet") 1721 @Test public void borderStyle_solid_dotted_dashed_ridge() { 1722 region.setStyle("-fx-border-color: black; -fx-border-style: solid dotted dashed ridge;"); 1723 processCSS(); 1724 1725 assertEquals(0, region.getBackground().getFills().size(), 0); 1726 assertEquals(0, region.getBackground().getImages().size(), 0); 1727 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1728 assertEquals(0, region.getBorder().getImages().size(), 0); 1729 1730 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1731 // BorderStroke expected = new BorderStroke( 1732 // Color.BLACK, Color.BLACK, Color.BLACK, Color.BLACK, 1733 // BorderStrokeStyle.SOLID, BorderStrokeStyle.DOTTED, BorderStrokeStyle.DASHED, BorderStrokeStyle.RIDGE, 1734 // null, null, Insets.EMPTY); 1735 // assertEquals(expected, stroke); 1736 } 1737 1738 @Ignore ("-fx-border-width-top is not supported") 1739 @Test public void borderStrokeWidth_top() { 1740 region.setStyle( 1741 "-fx-border-color: black;" + 1742 "-fx-border-width-top: 10px;"); 1743 processCSS(); 1744 1745 assertEquals(0, region.getBackground().getFills().size(), 0); 1746 assertEquals(0, region.getBackground().getImages().size(), 0); 1747 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1748 assertEquals(0, region.getBorder().getImages().size(), 0); 1749 1750 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1751 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(10, 0, 0, 0)); 1752 assertEquals(expected, stroke); 1753 } 1754 1755 @Ignore ("-fx-border-width-right is not supported") 1756 @Test public void borderStrokeWidth_right() { 1757 region.setStyle( 1758 "-fx-border-color: black;" + 1759 "-fx-border-width-right: 10px;"); 1760 processCSS(); 1761 1762 assertEquals(0, region.getBackground().getFills().size(), 0); 1763 assertEquals(0, region.getBackground().getImages().size(), 0); 1764 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1765 assertEquals(0, region.getBorder().getImages().size(), 0); 1766 1767 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1768 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(0, 10, 0, 0)); 1769 assertEquals(expected, stroke); 1770 } 1771 1772 @Ignore ("-fx-border-width-bottom is not supported") 1773 @Test public void borderStrokeWidth_bottom() { 1774 region.setStyle( 1775 "-fx-border-color: black;" + 1776 "-fx-border-width-bottom: 10px;"); 1777 processCSS(); 1778 1779 assertEquals(0, region.getBackground().getFills().size(), 0); 1780 assertEquals(0, region.getBackground().getImages().size(), 0); 1781 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1782 assertEquals(0, region.getBorder().getImages().size(), 0); 1783 1784 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1785 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(0, 0, 10, 0)); 1786 assertEquals(expected, stroke); 1787 } 1788 1789 @Ignore ("-fx-border-width-left is not supported") 1790 @Test public void borderStrokeWidth_left() { 1791 region.setStyle( 1792 "-fx-border-color: black;" + 1793 "-fx-border-width-left: 10px;"); 1794 processCSS(); 1795 1796 assertEquals(0, region.getBackground().getFills().size(), 0); 1797 assertEquals(0, region.getBackground().getImages().size(), 0); 1798 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1799 assertEquals(0, region.getBorder().getImages().size(), 0); 1800 1801 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1802 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(0, 0, 0, 10)); 1803 assertEquals(expected, stroke); 1804 } 1805 1806 @Ignore ("-fx-border-width-top and -fx-border-width-right are not supported") 1807 @Test public void borderStrokeWidth_top_right() { 1808 region.setStyle( 1809 "-fx-border-color: black;" + 1810 "-fx-border-width-top: 10px;" + 1811 "-fx-border-width-right: 20px;"); 1812 processCSS(); 1813 1814 assertEquals(0, region.getBackground().getFills().size(), 0); 1815 assertEquals(0, region.getBackground().getImages().size(), 0); 1816 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1817 assertEquals(0, region.getBorder().getImages().size(), 0); 1818 1819 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1820 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(10, 20, 0, 0)); 1821 assertEquals(expected, stroke); 1822 } 1823 1824 @Ignore ("-fx-border-width-top and -fx-border-width-bottom are not supported") 1825 @Test public void borderStrokeWidth_top_bottom() { 1826 region.setStyle( 1827 "-fx-border-color: black;" + 1828 "-fx-border-width-top: 10px;" + 1829 "-fx-border-width-bottom: 20px;"); 1830 processCSS(); 1831 1832 assertEquals(0, region.getBackground().getFills().size(), 0); 1833 assertEquals(0, region.getBackground().getImages().size(), 0); 1834 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1835 assertEquals(0, region.getBorder().getImages().size(), 0); 1836 1837 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1838 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(10, 0, 20, 0)); 1839 assertEquals(expected, stroke); 1840 } 1841 1842 @Ignore ("-fx-border-width-left and -fx-border-width-bottom are not supported") 1843 @Test public void borderStrokeWidth_left_bottom() { 1844 region.setStyle( 1845 "-fx-border-color: black;" + 1846 "-fx-border-width-left: 10px;" + 1847 "-fx-border-width-bottom: 20px;"); 1848 processCSS(); 1849 1850 assertEquals(0, region.getBackground().getFills().size(), 0); 1851 assertEquals(0, region.getBackground().getImages().size(), 0); 1852 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1853 assertEquals(0, region.getBorder().getImages().size(), 0); 1854 1855 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1856 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(0, 0, 20, 10)); 1857 assertEquals(expected, stroke); 1858 } 1859 1860 @Test public void borderStrokeWidth2() { 1861 region.setStyle( 1862 "-fx-border-color: black;" + 1863 "-fx-border-width: 1px 2px;"); 1864 processCSS(); 1865 1866 assertNull(region.getBackground()); 1867 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1868 assertEquals(0, region.getBorder().getImages().size(), 0); 1869 1870 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1871 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(1, 2, 1, 2)); 1872 assertEquals(expected, stroke); 1873 } 1874 1875 @Test public void borderStrokeWidth3() { 1876 region.setStyle( 1877 "-fx-border-color: black;" + 1878 "-fx-border-width: 1px 2px 3px;"); 1879 processCSS(); 1880 1881 assertNull(region.getBackground()); 1882 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1883 assertEquals(0, region.getBorder().getImages().size(), 0); 1884 1885 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1886 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(1, 2, 3, 2)); 1887 assertEquals(expected, stroke); 1888 } 1889 1890 @Test public void borderStrokeWidth4() { 1891 region.setStyle( 1892 "-fx-border-color: black;" + 1893 "-fx-border-width: 1px 2px 3px 4px;"); 1894 processCSS(); 1895 1896 assertNull(region.getBackground()); 1897 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1898 assertEquals(0, region.getBorder().getImages().size(), 0); 1899 1900 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1901 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(1, 2, 3, 4)); 1902 assertEquals(expected, stroke); 1903 } 1904 1905 @Ignore("thin keyword is not supported") 1906 @Test public void borderStrokeWidth_thin() { 1907 region.setStyle( 1908 "-fx-border-color: black;" + 1909 "-fx-border-width: thin;"); 1910 processCSS(); 1911 1912 assertEquals(0, region.getBackground().getFills().size(), 0); 1913 assertEquals(0, region.getBackground().getImages().size(), 0); 1914 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1915 assertEquals(0, region.getBorder().getImages().size(), 0); 1916 1917 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1918 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(1, 1, 1, 1)); 1919 assertEquals(expected, stroke); 1920 } 1921 1922 @Ignore("thick keyword is not supported") 1923 @Test public void borderStrokeWidth_thick() { 1924 region.setStyle( 1925 "-fx-border-color: black;" + 1926 "-fx-border-width: thick;"); 1927 processCSS(); 1928 1929 assertEquals(0, region.getBackground().getFills().size(), 0); 1930 assertEquals(0, region.getBackground().getImages().size(), 0); 1931 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1932 assertEquals(0, region.getBorder().getImages().size(), 0); 1933 1934 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1935 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(5, 5, 5, 5)); 1936 assertEquals(expected, stroke); 1937 } 1938 1939 @Ignore("medium keyword is not supported") 1940 @Test public void borderStrokeWidth_medium() { 1941 region.setStyle( 1942 "-fx-border-color: black;" + 1943 "-fx-border-width: medium;"); 1944 processCSS(); 1945 1946 assertEquals(0, region.getBackground().getFills().size(), 0); 1947 assertEquals(0, region.getBackground().getImages().size(), 0); 1948 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1949 assertEquals(0, region.getBorder().getImages().size(), 0); 1950 1951 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1952 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(3, 3, 3, 3)); 1953 assertEquals(expected, stroke); 1954 } 1955 1956 @Ignore("thin, medium, and thick keywords are not supported") 1957 @Test public void borderStrokeWidth_thin_medium_thick() { 1958 region.setStyle( 1959 "-fx-border-color: black;" + 1960 "-fx-border-width: thin medium thick;"); 1961 processCSS(); 1962 1963 assertEquals(0, region.getBackground().getFills().size(), 0); 1964 assertEquals(0, region.getBackground().getImages().size(), 0); 1965 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1966 assertEquals(0, region.getBorder().getImages().size(), 0); 1967 1968 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1969 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(1, 3, 5, 3)); 1970 assertEquals(expected, stroke); 1971 } 1972 1973 // TODO example 20 1974 // TODO example 21 1975 1976 // TODO!! The initial width of a border is MEDIUM, NOT 0! 1977 1978 @Ignore("-fx-border-top-left-radius not supported") 1979 @Test public void borderStrokeRadius_topLeft1() { 1980 region.setStyle( 1981 "-fx-border-color: black;" + 1982 "-fx-border-top-left-radius: 5px;"); 1983 processCSS(); 1984 1985 assertEquals(0, region.getBackground().getFills().size(), 0); 1986 assertEquals(0, region.getBackground().getImages().size(), 0); 1987 assertEquals(1, region.getBorder().getStrokes().size(), 0); 1988 assertEquals(0, region.getBorder().getImages().size(), 0); 1989 1990 BorderStroke stroke = region.getBorder().getStrokes().get(0); 1991 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 1992 new CornerRadii(5, 0, 0, 0, false), BorderStroke.DEFAULT_WIDTHS); 1993 assertEquals(expected, stroke); 1994 } 1995 1996 @Ignore("-fx-border-top-left-radius not supported") 1997 @Test public void borderStrokeRadius_topLeft2() { 1998 region.setStyle( 1999 "-fx-border-color: black;" + 2000 "-fx-border-top-left-radius: 5px, 10px;"); 2001 processCSS(); 2002 2003 assertEquals(0, region.getBackground().getFills().size(), 0); 2004 assertEquals(0, region.getBackground().getImages().size(), 0); 2005 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2006 assertEquals(0, region.getBorder().getImages().size(), 0); 2007 2008 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2009 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2010 new CornerRadii( 2011 5, 10, // top left 2012 0, 0, // top right 2013 0, 0, // bottom right 2014 0, 0, // bottom left 2015 false, false, // top left as percent 2016 false, false, // top right as percent 2017 false, false, // bottom right as percent 2018 false, false), // bottom left as percent 2019 BorderStroke.DEFAULT_WIDTHS); 2020 assertEquals(expected, stroke); 2021 } 2022 2023 @Ignore("-fx-border-top-left-radius not supported") 2024 @Test public void borderStrokeRadius_topLeft3() { 2025 region.setStyle( 2026 "-fx-border-color: black;" + 2027 "-fx-border-top-left-radius: 5%;"); 2028 processCSS(); 2029 2030 assertEquals(0, region.getBackground().getFills().size(), 0); 2031 assertEquals(0, region.getBackground().getImages().size(), 0); 2032 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2033 assertEquals(0, region.getBorder().getImages().size(), 0); 2034 2035 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2036 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2037 new CornerRadii( 2038 5, 5, // top left 2039 0, 0, // top right 2040 0, 0, // bottom right 2041 0, 0, // bottom left 2042 true, true, // top left as percent 2043 false, false, // top right as percent 2044 false, false, // bottom right as percent 2045 false, false), // bottom left as percent 2046 BorderStroke.DEFAULT_WIDTHS); 2047 assertEquals(expected, stroke); 2048 } 2049 2050 @Ignore("-fx-border-top-left-radius not supported") 2051 @Test public void borderStrokeRadius_topLeft4() { 2052 region.setStyle( 2053 "-fx-border-color: black;" + 2054 "-fx-border-top-left-radius: 5%, 10%;"); 2055 processCSS(); 2056 2057 assertEquals(0, region.getBackground().getFills().size(), 0); 2058 assertEquals(0, region.getBackground().getImages().size(), 0); 2059 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2060 assertEquals(0, region.getBorder().getImages().size(), 0); 2061 2062 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2063 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2064 new CornerRadii( 2065 5, 10, // top left 2066 0, 0, // top right 2067 0, 0, // bottom right 2068 0, 0, // bottom left 2069 true, true, // top left as percent 2070 false, false, // top right as percent 2071 false, false, // bottom right as percent 2072 false, false), // bottom left as percent 2073 BorderStroke.DEFAULT_WIDTHS); 2074 assertEquals(expected, stroke); 2075 } 2076 2077 @Ignore("-fx-border-top-left-radius not supported") 2078 @Test public void borderStrokeRadius_topLeft5() { 2079 region.setStyle( 2080 "-fx-border-color: black;" + 2081 "-fx-border-top-left-radius: 5% 10px;"); 2082 processCSS(); 2083 2084 assertEquals(0, region.getBackground().getFills().size(), 0); 2085 assertEquals(0, region.getBackground().getImages().size(), 0); 2086 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2087 assertEquals(0, region.getBorder().getImages().size(), 0); 2088 2089 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2090 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2091 new CornerRadii( 2092 5, 10, // top left 2093 0, 0, // top right 2094 0, 0, // bottom right 2095 0, 0, // bottom left 2096 true, false, // top left as percent 2097 false, false, // top right as percent 2098 false, false, // bottom right as percent 2099 false, false), // bottom left as percent 2100 BorderStroke.DEFAULT_WIDTHS); 2101 assertEquals(expected, stroke); 2102 } 2103 2104 @Ignore("-fx-border-top-left-radius not supported") 2105 @Test public void borderStrokeRadius_topLeft6() { 2106 region.setStyle( 2107 "-fx-border-color: black;" + 2108 "-fx-border-top-left-radius: 5px, 10%;"); 2109 processCSS(); 2110 2111 assertEquals(0, region.getBackground().getFills().size(), 0); 2112 assertEquals(0, region.getBackground().getImages().size(), 0); 2113 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2114 assertEquals(0, region.getBorder().getImages().size(), 0); 2115 2116 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2117 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2118 new CornerRadii( 2119 5, 10, // top left 2120 0, 0, // top right 2121 0, 0, // bottom right 2122 0, 0, // bottom left 2123 false, true, // top left as percent 2124 false, false, // top right as percent 2125 false, false, // bottom right as percent 2126 false, false), // bottom left as percent 2127 BorderStroke.DEFAULT_WIDTHS); 2128 assertEquals(expected, stroke); 2129 } 2130 2131 @Ignore("-fx-border-top-right-radius not supported") 2132 @Test public void borderStrokeRadius_topRight1() { 2133 region.setStyle( 2134 "-fx-border-color: black;" + 2135 "-fx-border-top-right-radius: 5px;"); 2136 processCSS(); 2137 2138 assertEquals(0, region.getBackground().getFills().size(), 0); 2139 assertEquals(0, region.getBackground().getImages().size(), 0); 2140 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2141 assertEquals(0, region.getBorder().getImages().size(), 0); 2142 2143 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2144 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2145 new CornerRadii(0, 5, 0, 0, false), BorderStroke.DEFAULT_WIDTHS); 2146 assertEquals(expected, stroke); 2147 } 2148 2149 @Ignore("-fx-border-top-right-radius not supported") 2150 @Test public void borderStrokeRadius_topRight2() { 2151 region.setStyle( 2152 "-fx-border-color: black;" + 2153 "-fx-border-top-right-radius: 5px, 10px;"); 2154 processCSS(); 2155 2156 assertEquals(0, region.getBackground().getFills().size(), 0); 2157 assertEquals(0, region.getBackground().getImages().size(), 0); 2158 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2159 assertEquals(0, region.getBorder().getImages().size(), 0); 2160 2161 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2162 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2163 new CornerRadii( 2164 0, 0, // top left 2165 5, 10, // top right 2166 0, 0, // bottom right 2167 0, 0, // bottom left 2168 false, false, // top left as percent 2169 false, false, // top right as percent 2170 false, false, // bottom right as percent 2171 false, false), // bottom left as percent 2172 BorderStroke.DEFAULT_WIDTHS); 2173 assertEquals(expected, stroke); 2174 } 2175 2176 @Ignore("-fx-border-top-right-radius not supported") 2177 @Test public void borderStrokeRadius_topRight3() { 2178 region.setStyle( 2179 "-fx-border-color: black;" + 2180 "-fx-border-top-right-radius: 5%;"); 2181 processCSS(); 2182 2183 assertEquals(0, region.getBackground().getFills().size(), 0); 2184 assertEquals(0, region.getBackground().getImages().size(), 0); 2185 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2186 assertEquals(0, region.getBorder().getImages().size(), 0); 2187 2188 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2189 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2190 new CornerRadii( 2191 0, 0, // top left 2192 5, 5, // top right 2193 0, 0, // bottom right 2194 0, 0, // bottom left 2195 false, false, // top left as percent 2196 true, true, // top right as percent 2197 false, false, // bottom right as percent 2198 false, false), // bottom left as percent 2199 BorderStroke.DEFAULT_WIDTHS); 2200 assertEquals(expected, stroke); 2201 } 2202 2203 @Ignore("-fx-border-top-right-radius not supported") 2204 @Test public void borderStrokeRadius_topRight4() { 2205 region.setStyle( 2206 "-fx-border-color: black;" + 2207 "-fx-border-top-right-radius: 5%, 10%;"); 2208 processCSS(); 2209 2210 assertEquals(0, region.getBackground().getFills().size(), 0); 2211 assertEquals(0, region.getBackground().getImages().size(), 0); 2212 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2213 assertEquals(0, region.getBorder().getImages().size(), 0); 2214 2215 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2216 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2217 new CornerRadii( 2218 0, 0, // top left 2219 5, 10, // top right 2220 0, 0, // bottom right 2221 0, 0, // bottom left 2222 false, false, // top left as percent 2223 true, true, // top right as percent 2224 false, false, // bottom right as percent 2225 false, false), // bottom left as percent 2226 BorderStroke.DEFAULT_WIDTHS); 2227 assertEquals(expected, stroke); 2228 } 2229 2230 @Ignore("-fx-border-top-right-radius not supported") 2231 @Test public void borderStrokeRadius_topRight5() { 2232 region.setStyle( 2233 "-fx-border-color: black;" + 2234 "-fx-border-top-right-radius: 5% 10px;"); 2235 processCSS(); 2236 2237 assertEquals(0, region.getBackground().getFills().size(), 0); 2238 assertEquals(0, region.getBackground().getImages().size(), 0); 2239 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2240 assertEquals(0, region.getBorder().getImages().size(), 0); 2241 2242 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2243 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2244 new CornerRadii( 2245 0, 0, // top left 2246 5, 10, // top right 2247 0, 0, // bottom right 2248 0, 0, // bottom left 2249 false, false, // top left as percent 2250 true, false, // top right as percent 2251 false, false, // bottom right as percent 2252 false, false), // bottom left as percent 2253 BorderStroke.DEFAULT_WIDTHS); 2254 assertEquals(expected, stroke); 2255 } 2256 2257 @Ignore("-fx-border-top-right-radius not supported") 2258 @Test public void borderStrokeRadius_topRight6() { 2259 region.setStyle( 2260 "-fx-border-color: black;" + 2261 "-fx-border-top-right-radius: 5px, 10%;"); 2262 processCSS(); 2263 2264 assertEquals(0, region.getBackground().getFills().size(), 0); 2265 assertEquals(0, region.getBackground().getImages().size(), 0); 2266 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2267 assertEquals(0, region.getBorder().getImages().size(), 0); 2268 2269 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2270 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2271 new CornerRadii( 2272 0, 0, // top left 2273 5, 10, // top right 2274 0, 0, // bottom right 2275 0, 0, // bottom left 2276 false, false, // top left as percent 2277 false, true, // top right as percent 2278 false, false, // bottom right as percent 2279 false, false), // bottom left as percent 2280 BorderStroke.DEFAULT_WIDTHS); 2281 assertEquals(expected, stroke); 2282 } 2283 2284 @Ignore("-fx-border-bottom-right-radius not supported") 2285 @Test public void borderStrokeRadius_bottomRight1() { 2286 region.setStyle( 2287 "-fx-border-color: black;" + 2288 "-fx-border-bottom-right-radius: 5px;"); 2289 processCSS(); 2290 2291 assertEquals(0, region.getBackground().getFills().size(), 0); 2292 assertEquals(0, region.getBackground().getImages().size(), 0); 2293 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2294 assertEquals(0, region.getBorder().getImages().size(), 0); 2295 2296 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2297 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2298 new CornerRadii(0, 0, 5, 0, false), BorderStroke.DEFAULT_WIDTHS); 2299 assertEquals(expected, stroke); 2300 } 2301 2302 @Ignore("-fx-border-bottom-right-radius not supported") 2303 @Test public void borderStrokeRadius_bottomRight2() { 2304 region.setStyle( 2305 "-fx-border-color: black;" + 2306 "-fx-border-bottom-right-radius: 5px, 10px;"); 2307 processCSS(); 2308 2309 assertEquals(0, region.getBackground().getFills().size(), 0); 2310 assertEquals(0, region.getBackground().getImages().size(), 0); 2311 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2312 assertEquals(0, region.getBorder().getImages().size(), 0); 2313 2314 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2315 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2316 new CornerRadii( 2317 0, 0, // top left 2318 0, 0, // top right 2319 5, 10, // bottom right 2320 0, 0, // bottom left 2321 false, false, // top left as percent 2322 false, false, // top right as percent 2323 false, false, // bottom right as percent 2324 false, false), // bottom left as percent 2325 BorderStroke.DEFAULT_WIDTHS); 2326 assertEquals(expected, stroke); 2327 } 2328 2329 @Ignore("-fx-border-bottom-right-radius not supported") 2330 @Test public void borderStrokeRadius_bottomRight3() { 2331 region.setStyle( 2332 "-fx-border-color: black;" + 2333 "-fx-border-bottom-right-radius: 5%;"); 2334 processCSS(); 2335 2336 assertEquals(0, region.getBackground().getFills().size(), 0); 2337 assertEquals(0, region.getBackground().getImages().size(), 0); 2338 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2339 assertEquals(0, region.getBorder().getImages().size(), 0); 2340 2341 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2342 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2343 new CornerRadii( 2344 0, 0, // top left 2345 0, 0, // top right 2346 5, 5, // bottom right 2347 0, 0, // bottom left 2348 false, false, // top left as percent 2349 false, false, // top right as percent 2350 true, true, // bottom right as percent 2351 false, false), // bottom left as percent 2352 BorderStroke.DEFAULT_WIDTHS); 2353 assertEquals(expected, stroke); 2354 } 2355 2356 @Ignore("-fx-border-bottom-right-radius not supported") 2357 @Test public void borderStrokeRadius_bottomRight4() { 2358 region.setStyle( 2359 "-fx-border-color: black;" + 2360 "-fx-border-bottom-right-radius: 5%, 10%;"); 2361 processCSS(); 2362 2363 assertEquals(0, region.getBackground().getFills().size(), 0); 2364 assertEquals(0, region.getBackground().getImages().size(), 0); 2365 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2366 assertEquals(0, region.getBorder().getImages().size(), 0); 2367 2368 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2369 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2370 new CornerRadii( 2371 0, 0, // top left 2372 0, 0, // top right 2373 5, 10, // bottom right 2374 0, 0, // bottom left 2375 false, false, // top left as percent 2376 false, false, // top right as percent 2377 true, true, // bottom right as percent 2378 false, false), // bottom left as percent 2379 BorderStroke.DEFAULT_WIDTHS); 2380 assertEquals(expected, stroke); 2381 } 2382 2383 @Ignore("-fx-border-bottom-right-radius not supported") 2384 @Test public void borderStrokeRadius_bottomRight5() { 2385 region.setStyle( 2386 "-fx-border-color: black;" + 2387 "-fx-border-bottom-right-radius: 5% 10px;"); 2388 processCSS(); 2389 2390 assertEquals(0, region.getBackground().getFills().size(), 0); 2391 assertEquals(0, region.getBackground().getImages().size(), 0); 2392 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2393 assertEquals(0, region.getBorder().getImages().size(), 0); 2394 2395 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2396 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2397 new CornerRadii( 2398 0, 0, // top left 2399 0, 0, // top right 2400 5, 10, // bottom right 2401 0, 0, // bottom left 2402 false, false, // top left as percent 2403 false, false, // top right as percent 2404 true, false, // bottom right as percent 2405 false, false), // bottom left as percent 2406 BorderStroke.DEFAULT_WIDTHS); 2407 assertEquals(expected, stroke); 2408 } 2409 2410 @Ignore("-fx-border-bottom-right-radius not supported") 2411 @Test public void borderStrokeRadius_bottomRight6() { 2412 region.setStyle( 2413 "-fx-border-color: black;" + 2414 "-fx-border-bottom-right-radius: 5px, 10%;"); 2415 processCSS(); 2416 2417 assertEquals(0, region.getBackground().getFills().size(), 0); 2418 assertEquals(0, region.getBackground().getImages().size(), 0); 2419 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2420 assertEquals(0, region.getBorder().getImages().size(), 0); 2421 2422 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2423 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2424 new CornerRadii( 2425 0, 0, // top left 2426 0, 0, // top right 2427 5, 10, // bottom right 2428 0, 0, // bottom left 2429 false, false, // top left as percent 2430 false, false, // top right as percent 2431 false, true, // bottom right as percent 2432 false, false), // bottom left as percent 2433 BorderStroke.DEFAULT_WIDTHS); 2434 assertEquals(expected, stroke); 2435 } 2436 2437 @Ignore("-fx-border-bottom-left-radius not supported") 2438 @Test public void borderStrokeRadius_bottomLeft1() { 2439 region.setStyle( 2440 "-fx-border-color: black;" + 2441 "-fx-border-bottom-left-radius: 5px;"); 2442 processCSS(); 2443 2444 assertEquals(0, region.getBackground().getFills().size(), 0); 2445 assertEquals(0, region.getBackground().getImages().size(), 0); 2446 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2447 assertEquals(0, region.getBorder().getImages().size(), 0); 2448 2449 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2450 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2451 new CornerRadii(0, 0, 0, 5, false), BorderStroke.DEFAULT_WIDTHS); 2452 assertEquals(expected, stroke); 2453 } 2454 2455 @Ignore("-fx-border-bottom-left-radius not supported") 2456 @Test public void borderStrokeRadius_bottomLeft2() { 2457 region.setStyle( 2458 "-fx-border-color: black;" + 2459 "-fx-border-bottom-left-radius: 5px, 10px;"); 2460 processCSS(); 2461 2462 assertEquals(0, region.getBackground().getFills().size(), 0); 2463 assertEquals(0, region.getBackground().getImages().size(), 0); 2464 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2465 assertEquals(0, region.getBorder().getImages().size(), 0); 2466 2467 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2468 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2469 new CornerRadii( 2470 0, 0, // top left 2471 0, 0, // top right 2472 0, 0, // bottom right 2473 5, 10, // bottom left 2474 false, false, // top left as percent 2475 false, false, // top right as percent 2476 false, false, // bottom right as percent 2477 false, false), // bottom left as percent 2478 BorderStroke.DEFAULT_WIDTHS); 2479 assertEquals(expected, stroke); 2480 } 2481 2482 @Ignore("-fx-border-bottom-left-radius not supported") 2483 @Test public void borderStrokeRadius_bottomLeft3() { 2484 region.setStyle( 2485 "-fx-border-color: black;" + 2486 "-fx-border-bottom-left-radius: 5%;"); 2487 processCSS(); 2488 2489 assertEquals(0, region.getBackground().getFills().size(), 0); 2490 assertEquals(0, region.getBackground().getImages().size(), 0); 2491 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2492 assertEquals(0, region.getBorder().getImages().size(), 0); 2493 2494 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2495 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2496 new CornerRadii( 2497 0, 0, // top left 2498 0, 0, // top right 2499 0, 0, // bottom right 2500 5, 5, // bottom left 2501 false, false, // top left as percent 2502 false, false, // top right as percent 2503 false, false, // bottom right as percent 2504 true, true), // bottom left as percent 2505 BorderStroke.DEFAULT_WIDTHS); 2506 assertEquals(expected, stroke); 2507 } 2508 2509 @Ignore("-fx-border-bottom-left-radius not supported") 2510 @Test public void borderStrokeRadius_bottomLeft4() { 2511 region.setStyle( 2512 "-fx-border-color: black;" + 2513 "-fx-border-bottom-left-radius: 5%, 10%;"); 2514 processCSS(); 2515 2516 assertEquals(0, region.getBackground().getFills().size(), 0); 2517 assertEquals(0, region.getBackground().getImages().size(), 0); 2518 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2519 assertEquals(0, region.getBorder().getImages().size(), 0); 2520 2521 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2522 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2523 new CornerRadii( 2524 0, 0, // top left 2525 0, 0, // top right 2526 0, 0, // bottom right 2527 5, 10, // bottom left 2528 false, false, // top left as percent 2529 false, false, // top right as percent 2530 false, false, // bottom right as percent 2531 true, true), // bottom left as percent 2532 BorderStroke.DEFAULT_WIDTHS); 2533 assertEquals(expected, stroke); 2534 } 2535 2536 @Ignore("-fx-border-bottom-left-radius not supported") 2537 @Test public void borderStrokeRadius_bottomLeft5() { 2538 region.setStyle( 2539 "-fx-border-color: black;" + 2540 "-fx-border-bottom-left-radius: 5% 10px;"); 2541 processCSS(); 2542 2543 assertEquals(0, region.getBackground().getFills().size(), 0); 2544 assertEquals(0, region.getBackground().getImages().size(), 0); 2545 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2546 assertEquals(0, region.getBorder().getImages().size(), 0); 2547 2548 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2549 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2550 new CornerRadii( 2551 0, 0, // top left 2552 0, 0, // top right 2553 0, 0, // bottom right 2554 5, 10, // bottom left 2555 false, false, // top left as percent 2556 false, false, // top right as percent 2557 false, false, // bottom right as percent 2558 true, false), // bottom left as percent 2559 BorderStroke.DEFAULT_WIDTHS); 2560 assertEquals(expected, stroke); 2561 } 2562 2563 @Ignore("-fx-border-bottom-left-radius not supported") 2564 @Test public void borderStrokeRadius_bottomLeft6() { 2565 region.setStyle( 2566 "-fx-border-color: black;" + 2567 "-fx-border-bottom-left-radius: 5px, 10%;"); 2568 processCSS(); 2569 2570 assertEquals(0, region.getBackground().getFills().size(), 0); 2571 assertEquals(0, region.getBackground().getImages().size(), 0); 2572 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2573 assertEquals(0, region.getBorder().getImages().size(), 0); 2574 2575 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2576 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2577 new CornerRadii( 2578 0, 0, // top left 2579 0, 0, // top right 2580 0, 0, // bottom right 2581 5, 10, // bottom left 2582 false, false, // top left as percent 2583 false, false, // top right as percent 2584 false, false, // bottom right as percent 2585 false, true), // bottom left as percent 2586 BorderStroke.DEFAULT_WIDTHS); 2587 assertEquals(expected, stroke); 2588 } 2589 2590 @Ignore("-fx-border-top-left-radius and -fx-border-top-right-radius are not supported") 2591 @Test public void borderStrokeRadius_topLeft_topRight() { 2592 region.setStyle( 2593 "-fx-border-color: black;" + 2594 "-fx-border-top-left-radius: 5px 10%;" + 2595 "-fx-border-top-right-radius: 20px 30%;"); 2596 processCSS(); 2597 2598 assertEquals(0, region.getBackground().getFills().size(), 0); 2599 assertEquals(0, region.getBackground().getImages().size(), 0); 2600 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2601 assertEquals(0, region.getBorder().getImages().size(), 0); 2602 2603 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2604 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2605 new CornerRadii( 2606 5, 10, // top left 2607 20, 30, // top right 2608 0, 0, // bottom right 2609 0, 0, // bottom left 2610 false, true, // top left as percent 2611 false, true, // top right as percent 2612 false, false, // bottom right as percent 2613 false, false), // bottom left as percent 2614 BorderStroke.DEFAULT_WIDTHS); 2615 assertEquals(expected, stroke); 2616 } 2617 2618 @Test public void borderStrokeRadius1() { 2619 region.setStyle( 2620 "-fx-border-color: black;" + 2621 "-fx-border-radius: 5px;"); 2622 processCSS(); 2623 2624 assertNull(region.getBackground()); 2625 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2626 assertEquals(0, region.getBorder().getImages().size(), 0); 2627 2628 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2629 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2630 new CornerRadii(5, 5, 5, 5, false), 2631 BorderStroke.DEFAULT_WIDTHS); 2632 assertEquals(expected, stroke); 2633 } 2634 2635 @Test public void borderStrokeRadius1_Percent() { 2636 region.setStyle( 2637 "-fx-border-color: black;" + 2638 "-fx-border-radius: 5%;"); 2639 processCSS(); 2640 2641 assertNull(region.getBackground()); 2642 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2643 assertEquals(0, region.getBorder().getImages().size(), 0); 2644 2645 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2646 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2647 new CornerRadii(.05, .05, .05, .05, true), 2648 BorderStroke.DEFAULT_WIDTHS); 2649 assertEquals(expected, stroke); 2650 } 2651 2652 @Test public void borderStrokeRadius2() { 2653 region.setStyle( 2654 "-fx-border-color: black;" + 2655 "-fx-border-radius: 5px 10px;"); 2656 processCSS(); 2657 2658 assertNull(region.getBackground()); 2659 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2660 assertEquals(0, region.getBorder().getImages().size(), 0); 2661 2662 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2663 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2664 new CornerRadii(5, 10, 5, 10, false), 2665 BorderStroke.DEFAULT_WIDTHS); 2666 assertEquals(expected, stroke); 2667 } 2668 2669 @Test public void borderStrokeRadius2_Percent() { 2670 region.setStyle( 2671 "-fx-border-color: black;" + 2672 "-fx-border-radius: 5% 10%;"); 2673 processCSS(); 2674 2675 assertNull(region.getBackground()); 2676 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2677 assertEquals(0, region.getBorder().getImages().size(), 0); 2678 2679 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2680 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2681 new CornerRadii(.05, .10, .05, .10, true), 2682 BorderStroke.DEFAULT_WIDTHS); 2683 assertEquals(expected, stroke); 2684 } 2685 2686 @Test public void borderStrokeRadius3() { 2687 region.setStyle( 2688 "-fx-border-color: black;" + 2689 "-fx-border-radius: 5px 10px 15px;"); 2690 processCSS(); 2691 2692 assertNull(region.getBackground()); 2693 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2694 assertEquals(0, region.getBorder().getImages().size(), 0); 2695 2696 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2697 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2698 new CornerRadii(5, 10, 15, 10, false), 2699 BorderStroke.DEFAULT_WIDTHS); 2700 assertEquals(expected, stroke); 2701 } 2702 2703 @Test public void borderStrokeRadius3_Percent() { 2704 region.setStyle( 2705 "-fx-border-color: black;" + 2706 "-fx-border-radius: 5% 10% 15%;"); 2707 processCSS(); 2708 2709 assertNull(region.getBackground()); 2710 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2711 assertEquals(0, region.getBorder().getImages().size(), 0); 2712 2713 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2714 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2715 new CornerRadii(.05, .10, .15, .10, true), 2716 BorderStroke.DEFAULT_WIDTHS); 2717 assertEquals(expected, stroke); 2718 } 2719 2720 @Test public void borderStrokeRadius4() { 2721 region.setStyle( 2722 "-fx-border-color: black;" + 2723 "-fx-border-radius: 5px 10px 15px 20px;"); 2724 processCSS(); 2725 2726 assertNull(region.getBackground()); 2727 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2728 assertEquals(0, region.getBorder().getImages().size(), 0); 2729 2730 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2731 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2732 new CornerRadii(5, 10, 15, 20, false), 2733 BorderStroke.DEFAULT_WIDTHS); 2734 assertEquals(expected, stroke); 2735 } 2736 2737 @Test public void borderStrokeRadius4_Percent() { 2738 region.setStyle( 2739 "-fx-border-color: black;" + 2740 "-fx-border-radius: 5% 10% 15% 20%;"); 2741 processCSS(); 2742 2743 assertNull(region.getBackground()); 2744 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2745 assertEquals(0, region.getBorder().getImages().size(), 0); 2746 2747 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2748 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2749 new CornerRadii(.05, .10, .15, .20, true), 2750 BorderStroke.DEFAULT_WIDTHS); 2751 assertEquals(expected, stroke); 2752 } 2753 2754 // TODO Example 22 2755 2756 // http://www.w3.org/TR/css3-background/#the-border-radius 2757 // Example 23 (except using px here instead of em) 2758 @Test public void testBorderRadiusWithHorizontalAndVerticalRadii() { 2759 2760 region.setStyle("-fx-border-color: black; -fx-border-radius: 2px 1px 4px / 0.5px 3px;"); 2761 processCSS(); 2762 2763 assertNull(region.getBackground()); 2764 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2765 assertEquals(0, region.getBorder().getImages().size(), 0); 2766 2767 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2768 BorderStroke expected = new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, 2769 new CornerRadii(2, .5, 3, 1, 4, .5, 3, 1, false, false, false, false, false, false, false, false), 2770 BorderStroke.DEFAULT_WIDTHS); 2771 2772 assertEquals(expected, stroke); 2773 2774 } 2775 2776 2777 2778 @Test public void borderStrokeIsTransparent() { 2779 region.setStyle( 2780 "-fx-border-style: solid;" + 2781 "-fx-border-color: transparent;"); 2782 processCSS(); 2783 2784 assertNull(region.getBackground()); 2785 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2786 assertEquals(0, region.getBorder().getImages().size(), 0); 2787 2788 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2789 BorderStroke expected = new BorderStroke(Color.TRANSPARENT, BorderStrokeStyle.SOLID, null, null); 2790 assertEquals(expected, stroke); 2791 } 2792 2793 @Test public void borderStrokeIsSpecifiedOnly() { 2794 region.setStyle( 2795 "-fx-border-style: solid;" + 2796 "-fx-border-color: red;"); 2797 processCSS(); 2798 2799 assertNull(region.getBackground()); 2800 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2801 assertEquals(0, region.getBorder().getImages().size(), 0); 2802 2803 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2804 BorderStroke expected = new BorderStroke(Color.RED, BorderStrokeStyle.SOLID, null, null); 2805 assertEquals(expected, stroke); 2806 } 2807 2808 @Test public void borderStroke2IsSpecifiedOnly() { 2809 region.setStyle( 2810 "-fx-border-style: solid;" + 2811 "-fx-border-color: red green;"); 2812 processCSS(); 2813 2814 assertNull(region.getBackground()); 2815 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2816 assertEquals(0, region.getBorder().getImages().size(), 0); 2817 2818 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2819 BorderStroke expected = new BorderStroke( 2820 Color.RED, Color.GREEN, Color.RED, Color.GREEN, 2821 BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, 2822 null, null, Insets.EMPTY); 2823 assertEquals(expected, stroke); 2824 } 2825 2826 @Test public void borderStroke3IsSpecifiedOnly() { 2827 region.setStyle( 2828 "-fx-border-style: solid;" + 2829 "-fx-border-color: red green blue;"); 2830 processCSS(); 2831 2832 assertNull(region.getBackground()); 2833 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2834 assertEquals(0, region.getBorder().getImages().size(), 0); 2835 2836 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2837 BorderStroke expected = new BorderStroke( 2838 Color.RED, Color.GREEN, Color.BLUE, Color.GREEN, 2839 BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, 2840 null, null, Insets.EMPTY); 2841 assertEquals(expected, stroke); 2842 } 2843 2844 @Test public void borderStroke4IsSpecifiedOnly() { 2845 region.setStyle( 2846 "-fx-border-style: solid;" + 2847 "-fx-border-color: red green blue yellow;"); 2848 processCSS(); 2849 2850 assertNull(region.getBackground()); 2851 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2852 assertEquals(0, region.getBorder().getImages().size(), 0); 2853 2854 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2855 BorderStroke expected = new BorderStroke( 2856 Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW, 2857 BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, 2858 null, null, Insets.EMPTY); 2859 assertEquals(expected, stroke); 2860 } 2861 2862 @Ignore ("-fx-border-top-color is not supported by the CSS parser") 2863 @Test public void borderStroke_top_IsSpecifiedOnly() { 2864 region.setStyle( 2865 "-fx-border-style: solid;" + 2866 "-fx-border-top-color: purple;"); 2867 processCSS(); 2868 2869 assertEquals(0, region.getBackground().getFills().size(), 0); 2870 assertEquals(0, region.getBackground().getImages().size(), 0); 2871 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2872 assertEquals(0, region.getBorder().getImages().size(), 0); 2873 2874 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2875 BorderStroke expected = new BorderStroke( 2876 Color.PURPLE, Color.BLACK, Color.BLACK, Color.BLACK, 2877 BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, 2878 null, null, Insets.EMPTY); 2879 assertEquals(expected, stroke); 2880 } 2881 2882 @Ignore ("-fx-border-right-color is not supported by the CSS parser") 2883 @Test public void borderStroke_right_IsSpecifiedOnly() { 2884 region.setStyle( 2885 "-fx-border-style: solid;" + 2886 "-fx-border-right-color: purple;"); 2887 processCSS(); 2888 2889 assertEquals(0, region.getBackground().getFills().size(), 0); 2890 assertEquals(0, region.getBackground().getImages().size(), 0); 2891 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2892 assertEquals(0, region.getBorder().getImages().size(), 0); 2893 2894 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2895 BorderStroke expected = new BorderStroke( 2896 Color.BLACK, Color.PURPLE, Color.BLACK, Color.BLACK, 2897 BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, 2898 null, null, Insets.EMPTY); 2899 assertEquals(expected, stroke); 2900 } 2901 2902 @Ignore ("-fx-border-bottom-color is not supported by the CSS parser") 2903 @Test public void borderStroke_bottom_IsSpecifiedOnly() { 2904 region.setStyle( 2905 "-fx-border-style: solid;" + 2906 "-fx-border-bottom-color: purple;"); 2907 processCSS(); 2908 2909 assertEquals(0, region.getBackground().getFills().size(), 0); 2910 assertEquals(0, region.getBackground().getImages().size(), 0); 2911 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2912 assertEquals(0, region.getBorder().getImages().size(), 0); 2913 2914 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2915 BorderStroke expected = new BorderStroke( 2916 Color.BLACK, Color.BLACK, Color.PURPLE, Color.BLACK, 2917 BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, 2918 null, null, Insets.EMPTY); 2919 assertEquals(expected, stroke); 2920 } 2921 2922 @Ignore ("-fx-border-left-color is not supported by the CSS parser") 2923 @Test public void borderStroke_left_IsSpecifiedOnly() { 2924 region.setStyle( 2925 "-fx-border-style: solid;" + 2926 "-fx-border-left-color: purple;"); 2927 processCSS(); 2928 2929 assertEquals(0, region.getBackground().getFills().size(), 0); 2930 assertEquals(0, region.getBackground().getImages().size(), 0); 2931 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2932 assertEquals(0, region.getBorder().getImages().size(), 0); 2933 2934 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2935 BorderStroke expected = new BorderStroke( 2936 Color.BLACK, Color.BLACK, Color.BLACK, Color.PURPLE, 2937 BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, 2938 null, null, Insets.EMPTY); 2939 assertEquals(expected, stroke); 2940 } 2941 2942 @Ignore ("-fx-border-top-color and -fx-border-right-color is not supported by the CSS parser") 2943 @Test public void borderStroke_top_right_IsSpecifiedOnly() { 2944 region.setStyle( 2945 "-fx-border-style: solid;" + 2946 "-fx-border-top-color: red;" + 2947 "-fx-border-right-color: green;"); 2948 processCSS(); 2949 2950 assertEquals(0, region.getBackground().getFills().size(), 0); 2951 assertEquals(0, region.getBackground().getImages().size(), 0); 2952 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2953 assertEquals(0, region.getBorder().getImages().size(), 0); 2954 2955 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2956 BorderStroke expected = new BorderStroke( 2957 Color.RED, Color.GREEN, Color.BLACK, Color.BLACK, 2958 BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, 2959 null, null, Insets.EMPTY); 2960 assertEquals(expected, stroke); 2961 } 2962 2963 @Ignore ("-fx-border-left-color and -fx-border-right-color is not supported by the CSS parser") 2964 @Test public void borderStroke_right_left_IsSpecifiedOnly() { 2965 region.setStyle( 2966 "-fx-border-style: solid;" + 2967 "-fx-border-right-color: red;" + 2968 "-fx-border-left-color: green;"); 2969 processCSS(); 2970 2971 assertEquals(0, region.getBackground().getFills().size(), 0); 2972 assertEquals(0, region.getBackground().getImages().size(), 0); 2973 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2974 assertEquals(0, region.getBorder().getImages().size(), 0); 2975 2976 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2977 BorderStroke expected = new BorderStroke( 2978 Color.BLACK, Color.RED, Color.BLACK, Color.GREEN, 2979 BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, 2980 null, null, Insets.EMPTY); 2981 assertEquals(expected, stroke); 2982 } 2983 2984 @Ignore ("-fx-border-top-color and -fx-border-bottom-color is not supported by the CSS parser") 2985 @Test public void borderStroke_bottom_top_IsSpecifiedOnly() { 2986 region.setStyle( 2987 "-fx-border-style: solid;" + 2988 "-fx-border-bottom-color: red;" + 2989 "-fx-border-top-color: green;"); 2990 processCSS(); 2991 2992 assertEquals(0, region.getBackground().getFills().size(), 0); 2993 assertEquals(0, region.getBackground().getImages().size(), 0); 2994 assertEquals(1, region.getBorder().getStrokes().size(), 0); 2995 assertEquals(0, region.getBorder().getImages().size(), 0); 2996 2997 BorderStroke stroke = region.getBorder().getStrokes().get(0); 2998 BorderStroke expected = new BorderStroke( 2999 Color.GREEN, Color.BLACK, Color.RED, Color.BLACK, 3000 BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, 3001 null, null, Insets.EMPTY); 3002 assertEquals(expected, stroke); 3003 } 3004 3005 @Test public void borderRadiusIsSpecifiedOnly() { 3006 region.setStyle("-fx-border-radius: 1px;"); 3007 processCSS(); 3008 3009 assertNull(region.getBackground()); 3010 assertNull(region.getBorder()); 3011 } 3012 3013 @Test public void borderWidthIsSpecifiedOnly() { 3014 region.setStyle("-fx-border-width: 1;"); 3015 processCSS(); 3016 3017 assertNull(region.getBackground()); 3018 assertNull(region.getBorder()); 3019 } 3020 3021 @Test public void testWithExcessBorderWidths() { 3022 region.setStyle( 3023 "-fx-border-style: solid;" + 3024 "-fx-border-color: red;" + 3025 "-fx-border-width: 0 0 0 0, 0, 1, 2;"); 3026 processCSS(); 3027 3028 assertNull(region.getBackground()); 3029 assertEquals(1, region.getBorder().getStrokes().size(), 0); 3030 assertEquals(0, region.getBorder().getImages().size(), 0); 3031 3032 BorderStroke stroke = region.getBorder().getStrokes().get(0); 3033 BorderStroke expected = new BorderStroke( 3034 Color.RED, Color.RED, Color.RED, Color.RED, 3035 BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, 3036 null, new BorderWidths(0, 0, 0, 0), Insets.EMPTY); 3037 assertEquals(expected, stroke); 3038 } 3039 3040 @Test public void testWithExcessBorderRadii() { 3041 region.setStyle( 3042 "-fx-border-style: solid;" + 3043 "-fx-border-color: red;" + 3044 "-fx-border-radius: 5%, 0, 10%, 2;"); 3045 processCSS(); 3046 3047 assertNull(region.getBackground()); 3048 assertEquals(1, region.getBorder().getStrokes().size(), 0); 3049 assertEquals(0, region.getBorder().getImages().size(), 0); 3050 3051 BorderStroke stroke = region.getBorder().getStrokes().get(0); 3052 BorderStroke expected = new BorderStroke( 3053 Color.RED, Color.RED, Color.RED, Color.RED, 3054 BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, 3055 new CornerRadii(.05, .05, .05, .05, true), 3056 null, Insets.EMPTY); 3057 assertEquals(expected, stroke); 3058 } 3059 3060 // Finally, the image borders!! 3061 // I probably have to rework things. The image border do depend on some settings from 3062 // the stroke borders (or at least, they can depend on them). As such I might not be 3063 // able to short-circuit the creation of stroke borders, even if they have no style. 3064 3065 @Test public void borderImageSourceIsNull() { 3066 region.setStyle("-fx-border-image-source: null;"); 3067 processCSS(); 3068 3069 assertEquals(new Insets(0), region.getPadding()); 3070 assertNull(region.getBackground()); 3071 assertNull(region.getBorder()); 3072 } 3073 3074 @Test public void borderImageSource() { 3075 region.setStyle("-fx-border-image-source: url('javafx/scene/layout/center-btn.png')"); 3076 processCSS(); 3077 3078 assertNull(region.getBackground()); 3079 assertEquals(0, region.getBorder().getStrokes().size(), 0); 3080 assertEquals(1, region.getBorder().getImages().size(), 0); 3081 } 3082 3083 @Test public void defaultBorderImageValues() { 3084 region.setStyle("-fx-border-image-source: url('javafx/scene/layout/center-btn.png')"); 3085 processCSS(); 3086 3087 BorderImage image = region.getBorder().getImages().get(0); 3088 BorderImage expected = new BorderImage( 3089 image.getImage(), 3090 BorderWidths.DEFAULT, 3091 Insets.EMPTY, 3092 BorderWidths.FULL, 3093 false, 3094 BorderRepeat.STRETCH, 3095 BorderRepeat.STRETCH 3096 ); 3097 assertEquals(expected, image); 3098 } 3099 3100 @Test public void borderImageSlice_1() { 3101 region.setStyle( 3102 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3103 "-fx-border-image-slice: 1;"); 3104 processCSS(); 3105 3106 BorderImage image = region.getBorder().getImages().get(0); 3107 BorderImage expected = new BorderImage( 3108 image.getImage(), 3109 BorderWidths.DEFAULT, 3110 Insets.EMPTY, 3111 new BorderWidths(1, 1, 1, 1, false, false, false, false), 3112 false, 3113 BorderRepeat.STRETCH, 3114 BorderRepeat.STRETCH 3115 ); 3116 assertEquals(expected, image); 3117 } 3118 3119 @Test public void borderImageSlice_1_2() { 3120 region.setStyle( 3121 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3122 "-fx-border-image-slice: 1 2;"); 3123 processCSS(); 3124 3125 BorderImage image = region.getBorder().getImages().get(0); 3126 BorderImage expected = new BorderImage( 3127 image.getImage(), 3128 BorderWidths.DEFAULT, 3129 Insets.EMPTY, 3130 new BorderWidths(1, 2, 1, 2, false, false, false, false), 3131 false, 3132 BorderRepeat.STRETCH, 3133 BorderRepeat.STRETCH 3134 ); 3135 assertEquals(expected, image); 3136 } 3137 3138 @Test public void borderImageSlice_1_2_3() { 3139 region.setStyle( 3140 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3141 "-fx-border-image-slice: 1 2 3;"); 3142 processCSS(); 3143 3144 BorderImage image = region.getBorder().getImages().get(0); 3145 BorderImage expected = new BorderImage( 3146 image.getImage(), 3147 BorderWidths.DEFAULT, 3148 Insets.EMPTY, 3149 new BorderWidths(1, 2, 3, 2, false, false, false, false), 3150 false, 3151 BorderRepeat.STRETCH, 3152 BorderRepeat.STRETCH 3153 ); 3154 assertEquals(expected, image); 3155 } 3156 3157 @Test public void borderImageSlice_1_2_3_4() { 3158 region.setStyle( 3159 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3160 "-fx-border-image-slice: 1 2 3 4;"); 3161 processCSS(); 3162 3163 BorderImage image = region.getBorder().getImages().get(0); 3164 BorderImage expected = new BorderImage( 3165 image.getImage(), 3166 BorderWidths.DEFAULT, 3167 Insets.EMPTY, 3168 new BorderWidths(1, 2, 3, 4, false, false, false, false), 3169 false, 3170 BorderRepeat.STRETCH, 3171 BorderRepeat.STRETCH 3172 ); 3173 assertEquals(expected, image); 3174 } 3175 3176 @Test public void borderImageSlice_1_fill() { 3177 region.setStyle( 3178 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3179 "-fx-border-image-slice: 1 fill;"); 3180 processCSS(); 3181 3182 BorderImage image = region.getBorder().getImages().get(0); 3183 BorderImage expected = new BorderImage( 3184 image.getImage(), 3185 BorderWidths.DEFAULT, 3186 Insets.EMPTY, 3187 new BorderWidths(1, 1, 1, 1), 3188 true, 3189 BorderRepeat.STRETCH, 3190 BorderRepeat.STRETCH 3191 ); 3192 assertEquals(expected, image); 3193 } 3194 3195 @Test public void borderImageSlice_1_2_fill() { 3196 region.setStyle( 3197 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3198 "-fx-border-image-slice: 1 2 fill;"); 3199 processCSS(); 3200 3201 BorderImage image = region.getBorder().getImages().get(0); 3202 BorderImage expected = new BorderImage( 3203 image.getImage(), 3204 BorderWidths.DEFAULT, 3205 Insets.EMPTY, 3206 new BorderWidths(1, 2, 1, 2), 3207 true, 3208 BorderRepeat.STRETCH, 3209 BorderRepeat.STRETCH 3210 ); 3211 assertEquals(expected, image); 3212 } 3213 3214 @Test public void borderImageSlice_1_2_3_fill() { 3215 region.setStyle( 3216 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3217 "-fx-border-image-slice: 1 2 3 fill;"); 3218 processCSS(); 3219 3220 BorderImage image = region.getBorder().getImages().get(0); 3221 BorderImage expected = new BorderImage( 3222 image.getImage(), 3223 BorderWidths.DEFAULT, 3224 Insets.EMPTY, 3225 new BorderWidths(1, 2, 3, 2), 3226 true, 3227 BorderRepeat.STRETCH, 3228 BorderRepeat.STRETCH 3229 ); 3230 assertEquals(expected, image); 3231 } 3232 3233 @Test public void borderImageSlice_1_2_3_4_fill() { 3234 region.setStyle( 3235 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3236 "-fx-border-image-slice: 1 2 3 4 fill;"); 3237 processCSS(); 3238 3239 BorderImage image = region.getBorder().getImages().get(0); 3240 BorderImage expected = new BorderImage( 3241 image.getImage(), 3242 BorderWidths.DEFAULT, 3243 Insets.EMPTY, 3244 new BorderWidths(1, 2, 3, 4), 3245 true, 3246 BorderRepeat.STRETCH, 3247 BorderRepeat.STRETCH 3248 ); 3249 assertEquals(expected, image); 3250 } 3251 3252 @Test public void borderImageWidth_1() { 3253 region.setStyle( 3254 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3255 "-fx-border-image-width: 1;"); 3256 processCSS(); 3257 3258 BorderImage image = region.getBorder().getImages().get(0); 3259 BorderImage expected = new BorderImage( 3260 image.getImage(), 3261 new BorderWidths(1, 1, 1, 1, false, false, false, false), 3262 Insets.EMPTY, 3263 BorderWidths.FULL, 3264 false, 3265 BorderRepeat.STRETCH, 3266 BorderRepeat.STRETCH 3267 ); 3268 assertEquals(expected, image); 3269 } 3270 3271 @Test public void borderImageWidth_1_2() { 3272 region.setStyle( 3273 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3274 "-fx-border-image-width: 1 2;"); 3275 processCSS(); 3276 3277 BorderImage image = region.getBorder().getImages().get(0); 3278 BorderImage expected = new BorderImage( 3279 image.getImage(), 3280 new BorderWidths(1, 2, 1, 2, false, false, false, false), 3281 Insets.EMPTY, 3282 BorderWidths.FULL, 3283 false, 3284 BorderRepeat.STRETCH, 3285 BorderRepeat.STRETCH 3286 ); 3287 assertEquals(expected, image); 3288 } 3289 3290 @Test public void borderImageWidth_1_2_3() { 3291 region.setStyle( 3292 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3293 "-fx-border-image-width: 1 2 3;"); 3294 processCSS(); 3295 3296 BorderImage image = region.getBorder().getImages().get(0); 3297 BorderImage expected = new BorderImage( 3298 image.getImage(), 3299 new BorderWidths(1, 2, 3, 2, false, false, false, false), 3300 Insets.EMPTY, 3301 BorderWidths.FULL, 3302 false, 3303 BorderRepeat.STRETCH, 3304 BorderRepeat.STRETCH 3305 ); 3306 assertEquals(expected, image); 3307 } 3308 3309 @Test public void borderImageWidth_1_2_3_4() { 3310 region.setStyle( 3311 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3312 "-fx-border-image-width: 1 2 3 4;"); 3313 processCSS(); 3314 3315 BorderImage image = region.getBorder().getImages().get(0); 3316 BorderImage expected = new BorderImage( 3317 image.getImage(), 3318 new BorderWidths(1, 2, 3, 4, false, false, false, false), 3319 Insets.EMPTY, 3320 BorderWidths.FULL, 3321 false, 3322 BorderRepeat.STRETCH, 3323 BorderRepeat.STRETCH 3324 ); 3325 assertEquals(expected, image); 3326 } 3327 3328 @Test public void borderImageWidth_1_2Percent() { 3329 region.setStyle( 3330 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3331 "-fx-border-image-width: 1 2%;"); 3332 processCSS(); 3333 3334 BorderImage image = region.getBorder().getImages().get(0); 3335 BorderImage expected = new BorderImage( 3336 image.getImage(), 3337 new BorderWidths(1, .02, 1, .02, false, true, false, true), 3338 Insets.EMPTY, 3339 BorderWidths.FULL, 3340 false, 3341 BorderRepeat.STRETCH, 3342 BorderRepeat.STRETCH 3343 ); 3344 assertEquals(expected, image); 3345 } 3346 3347 @Test public void borderImageWidth_1Percent_2Percent_3Percent_4Percent() { 3348 region.setStyle( 3349 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3350 "-fx-border-image-width: 1% 2% 3% 4%;"); 3351 processCSS(); 3352 3353 BorderImage image = region.getBorder().getImages().get(0); 3354 BorderImage expected = new BorderImage( 3355 image.getImage(), 3356 new BorderWidths(.01, .02, .03, .04, true, true, true, true), 3357 Insets.EMPTY, 3358 BorderWidths.FULL, 3359 false, 3360 BorderRepeat.STRETCH, 3361 BorderRepeat.STRETCH 3362 ); 3363 assertEquals(expected, image); 3364 } 3365 3366 @Ignore("I am not certain that supporting auto makes sense for us, and if it does, is it anything other than 1?") 3367 @Test public void borderImageWidth_auto() { 3368 region.setStyle( 3369 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3370 "-fx-border-image-width: auto;"); 3371 processCSS(); 3372 3373 BorderImage image = region.getBorder().getImages().get(0); 3374 BorderImage expected = new BorderImage( 3375 image.getImage(), 3376 new BorderWidths( 3377 BorderWidths.AUTO, BorderWidths.AUTO, 3378 BorderWidths.AUTO, BorderWidths.AUTO, false, false, false, false), 3379 Insets.EMPTY, 3380 BorderWidths.FULL, 3381 false, 3382 BorderRepeat.STRETCH, 3383 BorderRepeat.STRETCH 3384 ); 3385 assertEquals(expected, image); 3386 } 3387 3388 @Ignore("I am not certain that supporting auto makes sense for us, and if it does, is it anything other than 1?") 3389 @Test public void borderImageWidth_1_auto() { 3390 region.setStyle( 3391 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3392 "-fx-border-image-width: 1 auto;"); 3393 processCSS(); 3394 3395 BorderImage image = region.getBorder().getImages().get(0); 3396 BorderImage expected = new BorderImage( 3397 image.getImage(), 3398 new BorderWidths(1, BorderWidths.AUTO, 3399 1, BorderWidths.AUTO, false, false, false, false), 3400 Insets.EMPTY, 3401 BorderWidths.FULL, 3402 false, 3403 BorderRepeat.STRETCH, 3404 BorderRepeat.STRETCH 3405 ); 3406 assertEquals(expected, image); 3407 } 3408 3409 @Ignore("I am not certain that supporting auto makes sense for us, and if it does, is it anything other than 1?") 3410 @Test public void borderImageWidth_1_2Percent_auto() { 3411 region.setStyle( 3412 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3413 "-fx-border-image-width: 1 2% auto;"); 3414 processCSS(); 3415 3416 BorderImage image = region.getBorder().getImages().get(0); 3417 BorderImage expected = new BorderImage( 3418 image.getImage(), 3419 new BorderWidths(1, .02, 3420 BorderWidths.AUTO, .02, false, true, false, true), 3421 Insets.EMPTY, 3422 BorderWidths.FULL, 3423 false, 3424 BorderRepeat.STRETCH, 3425 BorderRepeat.STRETCH 3426 ); 3427 assertEquals(expected, image); 3428 } 3429 3430 @Test public void borderImageOutset_1() { 3431 region.setStyle( 3432 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3433 "-fx-border-image-insets: 1;"); 3434 processCSS(); 3435 3436 BorderImage image = region.getBorder().getImages().get(0); 3437 BorderImage expected = new BorderImage( 3438 image.getImage(), 3439 BorderWidths.DEFAULT, 3440 new Insets(1), 3441 BorderWidths.FULL, 3442 false, 3443 BorderRepeat.STRETCH, 3444 BorderRepeat.STRETCH 3445 ); 3446 assertEquals(expected, image); 3447 } 3448 3449 @Test public void borderImageOutset_1_2() { 3450 region.setStyle( 3451 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3452 "-fx-border-image-insets: 1 2;"); 3453 processCSS(); 3454 3455 BorderImage image = region.getBorder().getImages().get(0); 3456 BorderImage expected = new BorderImage( 3457 image.getImage(), 3458 BorderWidths.DEFAULT, 3459 new Insets(1, 2, 1, 2), 3460 BorderWidths.FULL, 3461 false, 3462 BorderRepeat.STRETCH, 3463 BorderRepeat.STRETCH 3464 ); 3465 assertEquals(expected, image); 3466 } 3467 3468 @Test public void borderImageOutset_1_2_3() { 3469 region.setStyle( 3470 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3471 "-fx-border-image-insets: 1 2 3;"); 3472 processCSS(); 3473 3474 BorderImage image = region.getBorder().getImages().get(0); 3475 BorderImage expected = new BorderImage( 3476 image.getImage(), 3477 BorderWidths.DEFAULT, 3478 new Insets(1, 2, 3, 2), 3479 BorderWidths.FULL, 3480 false, 3481 BorderRepeat.STRETCH, 3482 BorderRepeat.STRETCH 3483 ); 3484 assertEquals(expected, image); 3485 } 3486 3487 @Test public void borderImageOutset_1_2_3_4() { 3488 region.setStyle( 3489 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3490 "-fx-border-image-insets: 1 2 3 4;"); 3491 processCSS(); 3492 3493 BorderImage image = region.getBorder().getImages().get(0); 3494 BorderImage expected = new BorderImage( 3495 image.getImage(), 3496 BorderWidths.DEFAULT, 3497 new Insets(1, 2, 3, 4), 3498 BorderWidths.FULL, 3499 false, 3500 BorderRepeat.STRETCH, 3501 BorderRepeat.STRETCH 3502 ); 3503 assertEquals(expected, image); 3504 } 3505 3506 @Test public void borderImageRepeat_stretch() { 3507 region.setStyle( 3508 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3509 "-fx-border-image-repeat: stretch;"); 3510 processCSS(); 3511 3512 BorderImage image = region.getBorder().getImages().get(0); 3513 BorderImage expected = new BorderImage( 3514 image.getImage(), 3515 BorderWidths.DEFAULT, 3516 Insets.EMPTY, 3517 BorderWidths.FULL, 3518 false, 3519 BorderRepeat.STRETCH, 3520 BorderRepeat.STRETCH 3521 ); 3522 assertEquals(expected, image); 3523 } 3524 3525 @Test public void borderImageRepeat_repeat() { 3526 region.setStyle( 3527 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3528 "-fx-border-image-repeat: repeat;"); 3529 processCSS(); 3530 3531 BorderImage image = region.getBorder().getImages().get(0); 3532 BorderImage expected = new BorderImage( 3533 image.getImage(), 3534 BorderWidths.DEFAULT, 3535 Insets.EMPTY, 3536 BorderWidths.FULL, 3537 false, 3538 BorderRepeat.REPEAT, 3539 BorderRepeat.REPEAT 3540 ); 3541 assertEquals(expected, image); 3542 } 3543 3544 @Test public void borderImageRepeat_round() { 3545 region.setStyle( 3546 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3547 "-fx-border-image-repeat: round;"); 3548 processCSS(); 3549 3550 BorderImage image = region.getBorder().getImages().get(0); 3551 BorderImage expected = new BorderImage( 3552 image.getImage(), 3553 BorderWidths.DEFAULT, 3554 Insets.EMPTY, 3555 BorderWidths.FULL, 3556 false, 3557 BorderRepeat.ROUND, 3558 BorderRepeat.ROUND 3559 ); 3560 assertEquals(expected, image); 3561 } 3562 3563 @Test public void borderImageRepeat_space() { 3564 region.setStyle( 3565 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3566 "-fx-border-image-repeat: space;"); 3567 processCSS(); 3568 3569 BorderImage image = region.getBorder().getImages().get(0); 3570 BorderImage expected = new BorderImage( 3571 image.getImage(), 3572 BorderWidths.DEFAULT, 3573 Insets.EMPTY, 3574 BorderWidths.FULL, 3575 false, 3576 BorderRepeat.SPACE, 3577 BorderRepeat.SPACE 3578 ); 3579 assertEquals(expected, image); 3580 } 3581 3582 @Test public void borderImageRepeat_round_stretch() { 3583 region.setStyle( 3584 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3585 "-fx-border-image-repeat: round stretch;"); 3586 processCSS(); 3587 3588 BorderImage image = region.getBorder().getImages().get(0); 3589 BorderImage expected = new BorderImage( 3590 image.getImage(), 3591 BorderWidths.DEFAULT, 3592 Insets.EMPTY, 3593 BorderWidths.FULL, 3594 false, 3595 BorderRepeat.ROUND, 3596 BorderRepeat.STRETCH 3597 ); 3598 assertEquals(expected, image); 3599 } 3600 3601 @Test public void borderImageRepeat_round_repeat() { 3602 region.setStyle( 3603 "-fx-border-image-source: url('javafx/scene/layout/center-btn.png');" + 3604 "-fx-border-image-repeat: round repeat;"); 3605 processCSS(); 3606 3607 BorderImage image = region.getBorder().getImages().get(0); 3608 BorderImage expected = new BorderImage( 3609 image.getImage(), 3610 BorderWidths.DEFAULT, 3611 Insets.EMPTY, 3612 BorderWidths.FULL, 3613 false, 3614 BorderRepeat.ROUND, 3615 BorderRepeat.REPEAT 3616 ); 3617 assertEquals(expected, image); 3618 } 3619 3620 // TODO multiple image borders 3621 // TODO complex background fill, background image, stroke border, image border scenario 3622 }