@@ -17,46 +17,78 @@
17import QtQuick 2.0
17import QtQuick 2.0
18import QtTest 1.0
18import QtTest 1.0
19import "../../../qml/Components"
19import "../../../qml/Components"
20+import Ubuntu.Components 0.1
21+import Unity.Test 0.1 as UT
21−TestCase {
23+Rectangle {
22− name: "RatingStars"
24+ id: root
23−
25+ width: units.gu(20)
24− property int maximumRating: 5
26+ height: units.gu(10)
25− property int rating: 3
27+ color: "black"
26− property alias effectiveRating: ratingStars.effectiveRating
28 RatingStars {
29 RatingStars {
29 id: ratingStars
30 id: ratingStars
31+ anchors.centerIn: parent
30− maximumRating: parent.maximumRating
32+ maximumRating: 5
31− rating: parent.rating
33+ rating: 3
34− function test_rating_init() {
36+ UT.UnityTestCase {
35− compare(effectiveRating, rating, "EffectiveRating not initialized properly")
37+ name: "RatingStars"
36− }
38+ when: windowShown
38− function test_rating_negative() {
40+ function init() {
41+ ratingStars.maximumRating = 5
39− rating = -3
42+ ratingStars.rating = 3
40− compare(effectiveRating, 0, "EffectiveRating not calculated correctly")
43− function test_rating_set_ok() {
45+ function test_interactive_rating_data() {
44− rating = 2
46+ return [
45− compare(effectiveRating, rating, "EffectiveRating not calculated correctly")
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},
48− function test_rating_set_too_big() {
54+ function test_interactive_rating(data) {
49− rating = 200
55+ ratingStars.interactive = data.interactive
50− compare(effectiveRating, maximumRating, "EffectiveRating not calculated correctly")
56+ ratingStars.maximumRating = data.maximumRating
58+ var ratingStar = findChild(ratingStars, "ratingStar"+data.index)
59+ mouseClick(ratingStar, ratingStar.width / 2, ratingStar.height / 2)
60+ compare(ratingStars.rating, data.rating)
62+ ratingStars.interactive = false
65+ function test_rating_init() {
66+ compare(ratingStars.effectiveRating, ratingStars.rating, "EffectiveRating not initialized properly")
69+ function test_rating_negative() {
70+ ratingStars.rating = -3
71+ compare(ratingStars.effectiveRating, 0, "EffectiveRating not calculated correctly")
74+ function test_rating_set_ok() {
75+ ratingStars.rating = 2
76+ compare(ratingStars.effectiveRating, ratingStars.rating, "EffectiveRating not calculated correctly")
79+ function test_rating_set_too_big() {
80+ ratingStars.rating = 200
81+ compare(ratingStars.effectiveRating, ratingStars.maximumRating, "EffectiveRating not calculated correctly")
53− function test_rating_set_min() {
84+ function test_rating_set_min() {
54− rating = 0
85+ ratingStars.rating = 0
55− compare(effectiveRating, 0, "EffectiveRating not calculated correctly")
86+ compare(ratingStars.effectiveRating, 0, "EffectiveRating not calculated correctly")
58− function test_rating_set_max() {
89+ function test_rating_set_max() {
59− rating = maximumRating
90+ ratingStars.rating = ratingStars.maximumRating
60− compare(effectiveRating, maximumRating, "EffectiveRating not calculated correctly")
91+ compare(ratingStars.effectiveRating, ratingStars.maximumRating, "EffectiveRating not calculated correctly")