@@ -17,46 +17,78 @@
1717import QtQuick 2.0
1818import QtTest 1.0
1919import "../../../qml/Components"
20+import Ubuntu.Components 0.1
21+import Unity.Test 0.1 as UT
2022
21−TestCase {
22− name: "RatingStars"
23−
24− property int maximumRating: 5
25− property int rating: 3
26− property alias effectiveRating: ratingStars.effectiveRating
23+Rectangle {
24+ id: root
25+ width: units.gu(20)
26+ height: units.gu(10)
27+ color: "black"
2728
2829 RatingStars {
2930 id: ratingStars
30− maximumRating: parent.maximumRating
31− rating: parent.rating
31+ anchors.centerIn: parent
32+ maximumRating: 5
33+ rating: 3
3234 }
3335
34− function test_rating_init() {
35− compare(effectiveRating, rating, "EffectiveRating not initialized properly")
36− }
36+ UT.UnityTestCase {
37+ name: "RatingStars"
38+ when: windowShown
3739
38− function test_rating_negative() {
39− rating = -3
40− compare(effectiveRating, 0, "EffectiveRating not calculated correctly")
41− }
40+ function init() {
41+ ratingStars.maximumRating = 5
42+ ratingStars.rating = 3
43+ }
4244
43− function test_rating_set_ok() {
44− rating = 2
45− compare(effectiveRating, rating, "EffectiveRating not calculated correctly")
46− }
45+ function test_interactive_rating_data() {
46+ return [
47+ {tag: "first star without interactive", interactive: false, maximumRating: 5, index: 0, rating: 3},
48+ {tag: "first star", interactive: true, maximumRating: 5, index: 0, rating: 1},
49+ {tag: "second star with big maximumRating", interactive: true, maximumRating: 100, index: 1, rating: 40},
50+ {tag: "last star", interactive: true, maximumRating: 5, index: 4, rating: 5},
51+ ];
52+ }
4753
48− function test_rating_set_too_big() {
49− rating = 200
50− compare(effectiveRating, maximumRating, "EffectiveRating not calculated correctly")
51− }
54+ function test_interactive_rating(data) {
55+ ratingStars.interactive = data.interactive
56+ ratingStars.maximumRating = data.maximumRating
5257
53− function test_rating_set_min() {
54− rating = 0
55− compare(effectiveRating, 0, "EffectiveRating not calculated correctly")
56− }
58+ var ratingStar = findChild(ratingStars, "ratingStar"+data.index)
59+ mouseClick(ratingStar, ratingStar.width / 2, ratingStar.height / 2)
60+ compare(ratingStars.rating, data.rating)
61+
62+ ratingStars.interactive = false
63+ }
64+
65+ function test_rating_init() {
66+ compare(ratingStars.effectiveRating, ratingStars.rating, "EffectiveRating not initialized properly")
67+ }
68+
69+ function test_rating_negative() {
70+ ratingStars.rating = -3
71+ compare(ratingStars.effectiveRating, 0, "EffectiveRating not calculated correctly")
72+ }
73+
74+ function test_rating_set_ok() {
75+ ratingStars.rating = 2
76+ compare(ratingStars.effectiveRating, ratingStars.rating, "EffectiveRating not calculated correctly")
77+ }
78+
79+ function test_rating_set_too_big() {
80+ ratingStars.rating = 200
81+ compare(ratingStars.effectiveRating, ratingStars.maximumRating, "EffectiveRating not calculated correctly")
82+ }
83+
84+ function test_rating_set_min() {
85+ ratingStars.rating = 0
86+ compare(ratingStars.effectiveRating, 0, "EffectiveRating not calculated correctly")
87+ }
5788
58− function test_rating_set_max() {
59− rating = maximumRating
60− compare(effectiveRating, maximumRating, "EffectiveRating not calculated correctly")
89+ function test_rating_set_max() {
90+ ratingStars.rating = ratingStars.maximumRating
91+ compare(ratingStars.effectiveRating, ratingStars.maximumRating, "EffectiveRating not calculated correctly")
92+ }
6193 }
6294}